2011-02-07 1 views
0
exec('php convert.php >> convert.log &'); 

Это пример кода, который я нашел, но вот что я хочу сделать.Как запустить фоновый PHP-функцию с переменной POST с помощью exec()?

  1. Run convert.php с 1 или более POST переменных.

  2. Выполнение функции на фоне в случае, если пользователь покидает наш веб-сайт.

  3. Запуск нескольких экземпляров of convert.php в фоновом режиме в случае более одного пользователя на сайте за один раз.

+0

Это похоже на действительно плохой способ запуска функции в фоновом режиме. Есть более эффективные способы, чем вызов exec() на другом php-скрипте. Какова ваша конечная цель? – atx

+0

Моя конечная цель - запустить этот второй скрипт, если пользователь покинет наш веб-сайт, пока он все еще работает. –

+0

Кроме того, он обращается к IMAP пользователя, поэтому я хотел бы иметь возможность использовать пароль пользователя, пока он находится на нашем веб-сайте, поэтому мне не нужно хранить пароль в нашей базе данных. Было бы оптимально хранить пароль с использованием двухстороннего шифрования, чтобы позже я мог использовать задание cron для запуска этого процесса, но я не думаю, что это наиболее безопасное решение. –

ответ

1

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

ignore_user_abort() Если true, текущий скрипт завершится, даже если пользователь уйдет во время его работы.

Редактировать: как указано в комментарии, вам также необходимо отключить ограничение по времени. Использовать set_time_limit(0)

+2

вам также необходимо отключить max_execution_time (set_time_limit (0)). – arnaud576875

Смежные вопросы