laravel - 链中的所有作业都没有在 laravel 任务调度中执行?
问题描述
我试图在 laravel 任务调度中链式运行三个作业,kernel.php
但它只执行第一个作业而忽略其他两个作业。
kernel.php
protected function schedule(Schedule $schedule)
{
// $schedule->job(new \App\Jobs\FetchEmailAttachment)->everyMinute();
// $schedule->job(new \App\Jobs\SplitAttachment)->everyMinute();
// $schedule->job(new \App\Jobs\ResendAttachment)->everyMinute();
$schedule->job((new \App\Jobs\FetchEmailAttachment)->chain([
new \App\Jobs\SplitAttachment,
new \App\Jobs\ResendAttachment
]), 'mailbox')->everyMinute();
}
我想一一运行链中的所有作业。
解决方案
不幸的是,没有记录调度链式队列作业,但静态使用$schedule->call
和调用可能会起作用:withChain
$schedule->call(function () {
\App\Jobs\FetchEmailAttachment::withChain([
new \App\Jobs\SplitAttachment,
new \App\Jobs\ResendAttachment
])->dispatch()->allOnQueue('mailbox');
})->everyMinute();
PS:我还没有测试过,如果它有效,请告诉我们。
推荐阅读
- django - 在 url 模板标签中传递 Django 模板变量
- types - Hyperledger Fabric:HLF 事务模型类中应该存在哪些所有字段?
- javascript - 在 reactjs 中使用分页创建组图像滑块
- google-sheets - 谷歌插件触发器失败,但插件不知道它已安装
- python - 具有相同行索引的重复行值
- tensorflow - keras 适合性能 - 单 GPU 并行性不起作用
- git - 压缩的提交在 rebase 到它的父分支 Git 后返回
- go - 当第一个错误发生时如何停止 errGroup goroutines
- r - 使用 mutate across 和 ifelse 语句将 k 和 M 转换为成千上万
- reactjs - 当我部署到 circle-ci 时构建错误(版本错误)