Laravel 5.4 — вызовите другую работу, как только работа будет завершена

У меня возникли проблемы при создании другой очереди заданий после ее завершения.

Как описано в документах Laravel, я использую JobProcessed $event обнаружить событие, и это в AppServiceProvider.php, как показано ниже

    Queue::after(function (JobProcessed $event) {
$payload = $event->job->getRawBody();
$payload = json_decode($payload);
$data = $payload->data;
$command = unserialize($data->command);
if($command->queue == 'importInsights' && in_array($command->getInsightsOption(), ['item1', 'item2'])) {
try {
Artisan::queue("sync:insights", [
'insightOption' => 'some option',
'--day' => 'test date',
'--queue' => 'syncInsights'
]);
}
catch (\Exception $e) {
Log::error("Failed to call insights queue" . $e->getMessage());
}

}
});

Для моей локальной машины это работает, так как я на Windows и не установил Redis, но на тестовом сервере у нас есть Redis и там ничего не происходит.
Первая работа работает нормально без проблем, но для второй ничего не произошло. Я пробовал с Artisan::call Кроме того, не повезло. Если я попробую вместо этого в обработчике событий, поместите простой код, такой как Log::error("Test for queue handler"); это будет работать без проблем.

Любые предложения будут оценены.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]