@yuras666

Как лучше организовать выполнение фоновых задач на php?

Всем привет. Есть некая длительная по времени задача: отправка почты/смс пользователю после его действия. Когда пользователь совершает действие (нажимает на какую-нибудь кнопку) нужно вынести выполнение задачи в фон, а пользователю написать: "все хорошо, скоро вам придет письмо". Известный мне способ: сохраняем эту задачу где-нибудь (в базе данных или файле) и раз в минуту дергаем специальный скрипт по cron - у. Он и будет заниматься выполнением таких задач. Минус в том, что максимальное время ожидания для пользователя будет 1 минута. Это критично. Я читал про серверы очередей: german, rabbit. На проектах какого масштаба их лучше применять, чтобы не было ситуации "стреляем из пушки по воробьям"? Как посоветуете решить проблему?
  • Вопрос задан
  • 3300 просмотров
Решения вопроса 1
pavel_salauyou
@pavel_salauyou
Symfony2 & Angular разработчик
используй rabbit, создавай задачу на отправку писем, добавляй её в rabbit и спи спокойно, всё буде тсделано даже если сервер уйдёт в этот момент на перезагрузку. + такие вещи как очередь задач неплохо горизонтально масштабировать если нагрузка будет расти.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
passshift
@passshift
php, js, html5, css
Ajax... при клике показывать блок/текст "Все окей, смска ушла", скрываем форму (блокируем submit и т.д.) и обращаться к скрипту отправки, и не надо никаких очередей и ожиданий
Ответ написан
Комментировать
banderos120
@banderos120
Играю на балалайке
Почтовиком письма отправляются по очереди. Если будет много пользователей, то письма все равно будут приходить с задержкой. Почему бы не отправлять письма сразу после нажатия ? Зачем их складывать в очередь ?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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