我有一个带有
database
连接。注意,redis上也存在这个问题。但我现在使用的是数据库连接
failed_jobs
表来帮助我检查队列过程中发生的任何错误。
我遇到的问题是,队列在几个作业之后停止工作,而没有任何消息显示原因。但是当我重新启动命令(php)时queue:work)它负责剩下的工作。然后继续(但后来又停了下来)
作业配置了这些值
public $tries = 1;
public $timeout = 10;
职务代码为(不是原始代码)
public function handle()
{
try {
$file = //function to create file;
$zip = new ZipArchive();
$zip->open(//zip_path);
$zip->addFile(//file_path, //file_name);
$zip->close();
@unlink(//remove file);
} catch (\Exception $e) {
Log::error($e);
}
}
失败的函数设置如下:
public function failed(\Exception $exception)
{
Log::error($exception);
$this->fail($exception);
$this->delete();
}
但是我的没有失败的作业行,并且我的日志是空的
编辑:我在每行代码后添加了简单的信息日志。每次我启动队列,它都会在最后一行之后停止。所以代码运行正确。所以拉威尔不会在那之后开始新的工作
1条答案
按热度按时间mnowg1ta1#
你试过了吗
queue:listen
?我想你也需要主管来保护你的工人。