sasnnick
@sasnnick
Эникейщик

Где внятно почитать как работают queues в Laravel?

Задача такая:
При выполнении пользователем запроса на сайте, запускается несколько одновременных и последовательных парсеров, по результатам их работы необходимо выдать результат пользователю.
Пример:
Пользователь осуществил запрос -> сработал "Парсер1", отрабатывал он 20 секунд, по результатам его работы получили данные которые используются в 4 последующих парсеров ("Парсер2", "Парсер3", "Парсер4", "Парсер5"), которые необходимо, чтобы отработали одновременно. Каждый из 4 последних парсеров в среднем отрабатывает 12-14 секунд.
Соответственно время запроса для пользователя будет равна 20+(12~14) секунд = 32(~34) секунды.
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Yan-s
В чем вопрос?
Ответ написан
Tesla
@Tesla
Как работают очереди вполне понятно описано в документации. Вы кидаете в очередь на исполнение первую задачу. А когда она завершится, то сама запустит также в очередь 4 другие задачи. Разумеется, у вас должно быть несколько воркеров. Но что там в очередях происходит, скрипт уже не узнает. Чтобы какие-то результаты из них получить, вам нужно писать результаты в какую-то БД и параллельно мониторить эту самую БД, ожидая результатов.

В вашем случае проще запустить параллельно 4 потока с помощью curl. Сделать 4 отдельных url для парсеров 2-5, и курлом их дергать, когда парсер1 выполнит свою работу. Curl и многопоточность легко нагуглите.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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