laravel - 如何在 laravel 工作中优先考虑?
问题描述
我正在尝试使用 laravel Queue 作业向我的用户发送每日通讯。一切正常。现在的问题是,因为我有 50K 订阅者,所以处理时事通讯工作可能需要一个多小时。同时,一些用户注册了,但他们不会收到确认邮件。只有当通讯工作完成时,他们才会收到确认电子邮件。如何解决这个问题?我正在尝试按如下方式使用 onQueue("low")。
$job = (new SnippetsnewsletterJob())
->onQueue("low");
dispatch($job);
但问题没有解决!
解决方案
您跨不同队列拆分作业。这样您就可以对它们进行分类和优先排序。
指定作业所属的队列
$this->dispatch((new JobOne())->onQueue('queue1');
$this->dispatch((new JobTwo())->onQueue('queue2');
现在您将能够生成多个队列工作人员来分别处理作业:
php artisan queue:work --queue=queue1
php artisan queue:work --queue=queue2
推荐阅读
- docker - 如何使用 logrus 将日志推送到 fluentd deamonset
- reactjs - 如何在通过类名检索的 DOM 节点内呈现 React 组件?
- php - 如何在 PHP 中循环遍历对象数组
- docker - Nginx 工作进程
- edgeengine - 无法模拟智能汽车用例 - mimik
- react-native - 无法打开 DropDownPicker-React Native 的下拉菜单
- powershell - $Var.ToUpper() 抛出“您不能在空值表达式上调用方法。”
- javascript - 我怎么知道它的价值是什么会在按键上吗?
- nodatime - 选择合适的 Noda 时间结构
- java - Kotlin - 实例无法通过 myInstance::class.annotations 检索它的类注释,但可以使用 javaClass.annotations