Laravel框架中队列和工作(Queues、Jobs)操作实例详解(3)
这样一来,每当我们的控制器调用send方法时,就会创建一个SendEmail的job在数据库中。
那么怎么样调用Queue Worker来处理我们的jobs呢?
在.env文件中,我们将QUEUE_DRIVER=sync改为QUEUE_DRIVER=database。
接下来,我们运行以下Artisan命令:
$ php artisan queue:work
队列的worker会一直运行,每当有任务被添加进数据库jobs表中,worker便会自动抓取出任务进行处理。当任务失败时,worker会重复执行任务,直至最大尝试次数(默认为255)。我们可以手动设置最大尝试次数:
$ php artisan queue:work --tries=3
当然,我们也可以手动设置任务的超时(默认90s,在config/queue.php中的retry_after设置):
$ php artisan queue:work --timeout=30
最后,当没有任务的时候,我们可以设置一个睡眠时间,当worker在睡眠时间时,将不会处理任务:
$ php artisan queue:work --sleep=10
上面的命令意思是每当worker处理完所有任务后,会睡眠10s,然后才会再次检查任务队列
本文使用Laravel 5.6进行讲解
本文主要讲解了Laravel框架中队列和工作(Queues、Jobs)操作实例详解,更多关于Laravel框架的使用技巧请查看下面的相关链接