gordon_shamway
@gordon_shamway

Нужны ли для этого проекта очереди или можно использовать что нибудь еще?

Есть проект он получает данные из апи, анализирует и сохраняет в бд, на весь процесс уходит 2-3 минуты. Хочу засунуть всю эту работу в фон.
Как лучше это реализовать.
- использовать очереди в фоне?
- при каждом запросе создавать отдельный процесс?
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Долгоиграющие задачи лучше засовывать в очередь.

Плюсы:
  • сразу сможете дать ответ "Принято" на поступивший запрос и предоставить полный ответ с данным позже;
  • легко распараллелить по мере роста
  • всплески числа одновременных запросов не обрушат систему
  • в случае облома исполнения, можно попытаться снова и снова
  • можно вообще прекратить обрабатывать, взять выходной и копить задачи, а потом, в понедельник, уж как взяться!.. : )


Реализаций очередей полно готовых. Не обязательно связываться с монструозным Gearman'ом. Можно что-то построить и на Redis или MySQL. В Laravel работа с очередями идёт «из коробки».

p.s. «при каждом запросе создавать отдельный процесс?» – загнётся система при пике запросов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Можно и так и этак. Конкретный выбор можно сделать только при более подробном рассмотрении задачи. Если проект достаточно большой, то можно сделать и так и этак, и сравнить под нагрузкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы