Laravel задание выполняется в реальном времени без запуска очереди - PullRequest
0 голосов
/ 23 января 2020

Работает на Laravel 5.8 Я создаю большое количество заданий, которые, по моему мнению, должны быть выполнены после инициации очереди. Моя проблема заключается в том, что задания выполняются там и тогда, когда я даже не запускаю очередь.

Они даже не вставляются в таблицу jobs, созданную миграцией.

Ниже приведены настройки и фрагмент кода, который я считаю актуальным. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

На установке fre sh:

php artisan queue:table
php artisan migrate

.env file

QUEUE_CONNECTION=database

Создан queedtask

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 в терминале.

Есть идеи о том, почему это происходит?

1 Ответ

0 голосов
/ 24 января 2020

«база данных» - это подключение к очереди. Просьба отправить вашу работу в это соединение.

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

И это соединение по умолчанию, поэтому вы просто отправляете работу.

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

...