2017-06-29 84 views
0

我有一个laravel队列设置到数据库。当我运行dd(env('QUEUE_DRIVER'))时,我得到database。当我创建一份工作时,它立即运行。我希望这份工作能够排队,直到我运行php artisan queue:work。我需要做些什么才能让这项工作不会马上运行。谢谢!Laravel队列立即运行

编辑1:

调度代码:

for ($i=0; $i < 100; $i++) { 
     $job = new UpdateJob(""); 
     dispatch($job); 
} 

职位代码:

public function handle(){ 
    sleep(30); 
    SlackApi::SendMessage("Job!"); 
} 

当我运行此我得到一个消息松弛每30秒。但是这些作业都没有存储在数据库中。

编辑2:

即使当我添加->delay(Carbon::now()->addMinutes(10))到作业的作业仍在运行的时候了。

+0

当您将作业放入队列时,它将尽可能快地运行。当您必须执行许多任务时才创建作业功能,以便它们在队列中排队并逐一执行。也许这篇文章可以帮助你:https://laracasts.com/discuss/channels/laravel/laravel-51-queue-job-delay-doesnt-work –

+0

让我看看你的代码行,你派遣你的工作 – vietnguyen09

+0

@ vietnguyen09请参阅编辑 –

回答

0

这个问题似乎是从v5.1升级到v5.4的问题我把Illuminate\Bus\BusServiceProvider::class加到了我的提供商app.php中,并修复了一切。