У меня возникли проблемы при создании другой очереди заданий после ее завершения.
Как описано в документах 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");
это будет работать без проблем.
Любые предложения будут оценены.
Задача ещё не решена.
Других решений пока нет …