Php 为什么在分派和运行artisan queue:work时,laravel事件也存储在jobs表中?
我创建了一个调用artisan命令ImportScript的作业CallImportScript。在这个ImportScript中,我有一个触发UpdateConlog的事件,基本上是为了显示日志。问题在于,当工作线程执行队列时,它还将updateConlog存储在jobs表中 CallImportScript.phpPhp 为什么在分派和运行artisan queue:work时,laravel事件也存储在jobs表中?,php,laravel-5,events,queue,Php,Laravel 5,Events,Queue,我创建了一个调用artisan命令ImportScript的作业CallImportScript。在这个ImportScript中,我有一个触发UpdateConlog的事件,基本上是为了显示日志。问题在于,当工作线程执行队列时,它还将updateConlog存储在jobs表中 CallImportScript.php public function handle() { Artisan::call("ImportScript"); } //some loop for() {
public function handle()
{
Artisan::call("ImportScript");
}
//some loop
for() {
//ongoing process in the database
// need to trigger the event after database process
event(new UpdateCronlog('some string'));
}
ImportScript.php
public function handle()
{
Artisan::call("ImportScript");
}
//some loop
for() {
//ongoing process in the database
// need to trigger the event after database process
event(new UpdateCronlog('some string'));
}
问题是它不会立即调用事件,而是转到jobs表。这就像它也是一个问题。检查你的.env文件。您为队列连接设置了什么?如果它试图写入作业表,则可能是数据库。将其设置为“同步”将无法执行此操作。阅读队列驱动程序,选择项目所需的驱动程序。根据您的需要,Redis也是一个选项。希望这有帮助:)