在 windows 下 webman-task 重启项目后,不会清理之前未删除的 key,需要手动删除 redis 里 framework/crontab- 这个key,否则会提示skipped execution,查看源码发现在windows下模糊查找redis key 失效!
/**
* 删除执行失败的任务key
* @return void
*/
private function delTaskMutex()
{
$keys = Redis::keys('framework' . DIRECTORY_SEPARATOR . 'crontab-*');
Redis::del($keys);
}
上述代码有两个问题:
1、在 windows 下 模糊查找失败,经验证是 DIRECTORY_SEPARATOR 反斜杠问题;
2、设置redis 前缀后,模糊查找出来的 keys 无法删除;
Windows系统,最新的webman,yzh52521/webman-task laravel orm版