php - Laravel - 自动执行排队的作业
问题描述
我有工作要发送几封电子邮件。
在我的控制器中,我称之为工作:
dispatch(new SendStartPatEmail($data));
记录保存在表作业中。
但要执行这项工作,我必须php artisan queued:work
手动运行。我怎样才能自动做到这一点?
解决方案
有很多不同的方法,都取决于您使用的环境。Laravel 倾向于推荐使用Supervisor来监控你的队列工作者并保持他们运行。
或者,您可能希望立即执行作业,而不是将它们添加到队列中。您可以通过sync
在配置中将队列驱动程序设置为 来做到这一点:
配置/队列.php
'default' => env('QUEUE_DRIVER', 'sync'),
或在您的.env
文件中(假设您的配置设置如上)
.env
QUEUE_DRIVER=sync
推荐阅读
- excel - 使用 ADODB 在 excel vba 中使用 sql
- ros - 如何从 cmd 的 rosparam 参数中获取列表元素?
- hibernate - ElasticSearch json 对象
- r - 在 R 中将列切换为字符格式时保留重要的零
- java - 如何更改孩子内部所有唯一 ID 的数据?
- image - 将图像划分为彩色矩形区域
- javascript - 选项值树不会在第一次选择时重置
- phpmyadmin - 无法在 CentOS 7 上安装 phpmyadmin 4.8.3:--skip-broken rpm- Va --nofiles --nodigest
- vuejs2 - 我可以在 Vue 的路由器中为特定路由设置多个别名吗?
- spring - 将 Opentracing.io / jaegertracing.io 与 Spring MVC 集成