@dmitriyuvin
FullStack developer ( Laravel & Vue )

Как правильно организовать задачи в очереди?

Задача такая:
Паршу CSV, получается массив из массивов.
После того как спарсил, из этих данных надо создать модель - Platform, далее для каждой Platform взять по АПИ данные и создать SubModels с этими данными.
$platforms = array;
GetDataFromApi::dispatch($platforms);

В job'e я через foreach передаю Platform по АПИ, получаю ответ и создаю SubModel.
Проблема появилась, что у меня появилась ошибка beanstalkd notfound в логах лары.

И есть еще одна идея как это сделать:
$platforms;

GetDataFromApi::dispatch($platforms)
in job:
foreach ($platforms as $platform) {
     GetDataForPlatform::dispatch($platform);
}


Каким образом лучше решить такую задачу?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
@lavren
лучше всего использовать events

вешаем слушателя на событие Platform created добавляем в слушателя условие при котором он будет срабатывать (на случай если например какой-то тип платформ не надо тянуть со стороны) и как только добавляем в базу Platform оно само пушит в очередь слушателя с нужным функционалом.

Модель событие-подписчик вообще очень удобно использовать везде почти.
laravel.com#events
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы