我的设置:
队列非常奇怪。我已将数据库设置为队列驱动程序但是当我使用tinker
控制台测试作业的调度时,第一个作业总是消失:它不在jobs
表中,它是&#39 ; s不在failed_jobs
表中,日志中也没有。每次我开始tinker
的新会话时都会出现问题。如果我重复发送第二个,第三个,正确的时间等,一切都按预期工作。
这是一项我已定义的简单工作:
class AddToList implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->data = $data;
}
public function handle()
{
Log::info('List updated!');
return; // temporarily added for testing
// . . . other code
}
我修补了:
>>> \App\Jobs\AddToList::dispatch([])->onQueue('default')->delay(now());
=> Illuminate\Foundation\Bus\PendingDispatch {#2312}
并没有,就像我上面所描述的那样。如果我第二次这样做:
>>> \App\Jobs\AddToList::dispatch([])->onQueue('default')->delay(now());
=> Illuminate\Foundation\Bus\PendingDispatch {#2315}
作业显示在jobs
表格中,并根据需要进行处理。
任何人都有类似的事情吗?
答案 0 :(得分:0)
将其分配给变量,如下所示:
$dispatched = \App\Jobs\AddToList::dispatch([])->onQueue('default')->delay(now());