Я на самом деле пытаюсь применить это к скрипту, который отправляет электронную почту. Отправляющая часть электронной почты занимает несколько секунд, которая слишком длинная. Я хочу, чтобы первый скрипт выполнял свой материал и запускал другой скрипт (который отправляет электронную почту), но я хочу, чтобы первый скрипт возвращал управление пользователю, не дожидаясь, пока второй скрипт отправит электронное письмо.
Варианты, которые я рассмотрел:
Cron Job: для этого мне придется работать в cron, как раз каждые 2 минуты. Невозможно!
PHP-скрипт, активирующий работу cron, которая дезактивирует себя, когда это делается : Хорошо, но как это сделать? Может ли PHP это сделать?
Вы также можете вызвать оболочку и вручную вызвать файл PHP. Никакой cron не требуется и не ждет.
http://www.php.net/manual/en/function.exec.php
Из раздела « Notes
«Если программа запускается с этой функцией, чтобы она продолжала работать в фоновом режиме, вывод программы должен быть перенаправлен на файл или другой выходной поток. В противном случае PHP будет зависать до тех пор, пока выполнение программа заканчивается ».
Другое решение:
Я использую такое решение довольно много …
Я использую jQuery и AJAX для создания подобных вещей для PHP-скриптов, которые занимают много времени.
То, что вы хотите использовать, называется так называемым beanstalkd
Подробности: Как я могу получить список всех заданий в трубке beanstalk?
Это позволит вам ставить в очередь задания (сделать 1, затем 2, затем 3. затем 4), вы можете даже распределить эти задачи на серверах (да для заданий php!).