Запуск задачи PHP асинхронноPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Запуск задачи PHP асинхронно

Сообщение Anonymous »

Я работаю над довольно большим веб-приложением, и его серверная часть в основном написана на PHP. В коде есть несколько мест, где мне нужно выполнить какую-то задачу, но я не хочу заставлять пользователя ждать результата. Например, при создании новой учетной записи мне нужно отправить им приветственное письмо. Но когда они нажимают кнопку «Завершить регистрацию», я не хочу заставлять их ждать, пока письмо действительно будет отправлено, я просто хочу начать процесс и сразу же вернуть сообщение пользователю.
До сих пор в некоторых местах я использовал что-то вроде хака с exec(). В основном делаю такие вещи, как:

Код: Выделить всё

exec("doTask.php $arg1 $arg2 $arg3 >/dev/null 2>&1 &");
Это, кажется, работает, но мне интересно, есть ли лучший способ. Я подумываю о написании системы, которая ставит задачи в очередь в таблице MySQL, и отдельного долго выполняющегося PHP-скрипта, который запрашивает эту таблицу раз в секунду и выполняет любые новые задачи, которые он находит. Это также будет иметь то преимущество, что позволит мне в будущем разделить задачи между несколькими рабочими машинами, если мне понадобится.

Изобретаю ли я велосипед заново? Есть ли лучшее решение, чем взлом exec() или очередь MySQL?

Подробнее здесь: https://stackoverflow.com/questions/858 ... chronously
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»