为什么当我调度和运行工匠队列:工作时,拉拉维尔事件也存储在作业表中?



我创建了一个作业CallImportScript,它调用工匠命令ImportScript在这个ImportScript中,我有一个触发UpdateCronlog的事件,基本上是显示日志。问题是当工作线程执行队列时,它还会在作业表中存储 UpdateCronlog。

调用导入脚本.php

public function handle()
{
Artisan::call("ImportScript"); 
}

导入脚本.php

//some loop
for() {
//ongoing process in the database
// need to trigger the event after database process
event(new UpdateCronlog('some string'));
}

问题是它不会立即调用事件,而是转到作业表。 就像它也queque一样。

检查您的 .env 文件。你为 QUEUE_CONNECTION=设置了什么?它可能是数据库,如果它尝试写入作业表。将其设置为同步不会执行此操作。阅读队列驱动程序并选择项目所需的驱动程序。Redis 也是一个选项,具体取决于您的需求。希望这对:)有所帮助

最新更新