【问题标题】:Laravel job executing real time without queue being startedLaravel 作业实时执行而无需启动队列
【发布时间】:2020-01-23 04:31:56
【问题描述】:

在 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 命令。

知道为什么会这样吗?

【问题讨论】:

  • 你想试试:onConnection('database') 而不是 onQueue('database')?
  • 按预期工作。想把它作为答案@KevinBui 吗?

标签: laravel laravel-5 queue laravel-5.8


【解决方案1】:

“数据库”是一个队列连接。请将您的工作分派到该连接。

FulfillmentTask::dispatch($orderId, $client, $request->sendEmail)->onConnection('database');

这似乎是默认连接,所以您只需调度作业。

FulfillmentTask::dispatch($orderId, $client, $request->sendEmail);

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 2016-12-30
    • 1970-01-01
    • 2020-03-05
    相关资源
    最近更新 更多