laravel - Laravel 作业实时执行而无需启动队列
问题描述
在 Laravel 5.8 上运行我正在创建大量作业,我认为一旦启动队列就应该执行这些作业。我的问题是,当我什至还没有开始排队时,作业就会在那里执行。
它们甚至没有被插入到jobs
迁移创建的表中。
以下是我认为相关的设置和代码。如果需要更多信息,请告诉我。
在全新安装上:
php artisan queue:table
php artisan migrate
.env 文件
QUEUE_CONNECTION=database
创建了队列任务
class FulfillmentTask implements ShouldQueue{
//code here
}
控制器
use App\Jobs\FulfillmentTask;
//rest of the class here
public function somefunction(Request $request){
//some code here
//read csv file
foreach ($fileContents as $row){
FulfillmentTask::dispatch($orderId, $client, $request->sendEmail)->onQueue('database');
}
}
问题是执行 FulfillmentTask 时没有queue:work
在终端中给出命令。
知道为什么会这样吗?
解决方案
“数据库”是一个队列连接。请将您的工作分派到该连接。
FulfillmentTask::dispatch($orderId, $client, $request->sendEmail)->onConnection('database');
这似乎是默认连接,因此您只需调度作业。
FulfillmentTask::dispatch($orderId, $client, $request->sendEmail);
推荐阅读
- html - 为什么 Chrome 会同时请求 .svg 和 .ico 网站图标?
- c++ - 如何找到`std :: set`的中位数
- unit-testing - 嘲笑来自 RabbitMq 的 RPC 上下文,nestjs
- php - 多个表格,提交的值错误
- java - 为什么应用程序无法通过在 AOSP 中显示警报对话框来启动
- google-chrome - Flutter Web main.dart.js.map 问题
- vba - 为什么 PowerPoint 笔记页面中的形状计数即使看起来都是空的也会有所不同?
- python - 如何从其他表 django rest 框架中获取数据
- javascript - 当特定条件以角度为真时如何显示和隐藏数据
- python - Python 多处理变得越来越慢。为什么?