Несколько писем из приложения PHP с использованием Gmail SMTP - PullRequest
0 голосов
/ 22 декабря 2011

Я работаю над приложением, которое должно уведомлять около 100 человек одновременно, когда выполняется условие , специфичное . Теперь, когда пользователю, выполняющему действие, которое приводит к условию * , нужно дождаться отправки всех 100 электронных писем, что занимает довольно много времени с использованием Gmail SMTP. Приложение построено на Cake PHP.

У меня вопрос, есть ли способ, которым приложение может отправить 100 электронных писем, не блокируя пользователя, действие которого приводит к выполнению определенного условия.

Чтобы прояснить мой вопрос, подумайте о Groupon. Он отправляет уведомление всем покупателям, когда встречается минимальное количество покупателей. Поэтому, когда n-й человек совершает покупку, Google отправляет уведомление. Один из способов - это уведомить всех покупателей сразу же после завершения покупки (что мы и делаем в контексте нашего приложения), и, вероятно, другой способ - подождать и отправить уведомление с использованием внешнего скрипта / приложения в заранее установленное время.

В первом случае приложение блокируется, пока отправка электронной почты завершена. Поскольку PHP не поддерживает многопоточность, мне было интересно, есть ли простой способ сделать эту операцию асинхронной, чтобы она не влияла на основной поток приложения.

1 Ответ

0 голосов
/ 22 декабря 2011

Вы можете поместить уведомление в очередь и использовать cronjob, который проверяет и отправляет уведомления каждые 5 минут. Таким образом, ваш пользователь не будет заблокирован во время операции.

Я не уверен на 100%, но вы также можете использовать ajax-вызов, который позволит пользователю продолжить работу после отправки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...