Несколько процессов PHP - PullRequest
4 голосов
/ 15 ноября 2011

У меня есть страница, на которой пользователи вводят свой адрес электронной почты, нажимают «Отправить», и веб-сервер отправляет им по электронной почте вложение размером ~ 10 Мб.Прямо сейчас у меня на странице просто отображается сообщение «Отправка ...», и пользователь ждет на этой странице около 20 секунд.

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

Мне действительно нужно, чтобы кто-то указал мне правильное направление, потому что я даже не знаю, что делать».Google на данный момент.

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Вы можете вызвать другой php-файл, который будет обрабатывать отправку электронной почты, и обязательно ввести этот вызов:

ignore_user_abort(true);

Это позволяет завершить процесс php, даже если браузер уходит. Таким образом, вы можете начать процесс через ajax, а затем перейти на другую страницу, сообщив, что ваше вложение отправлено.

Для получения дополнительной информации:

http://www.php.net/manual/en/function.ignore-user-abort.php

0 голосов
/ 15 ноября 2011

Я рекомендую проверить этот вопрос, который я отправил некоторое время назад.

Как запустить скрипт PHP в фоновом режиме после отправки формы?

Ответ объясняет, как вы можете запустить PHP-скрипт в фоновом режиме после отправки формы. Это, конечно, только один из способов сделать это. Другой вариант - создать список адресов и настроить cron для запуска сценария через определенный интервал времени. И то, и другое может выполнить одно и то же, это зависит только от того, как вы хотите решить проблему и что вы можете сделать на своем сервере.

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