2010-10-15 2 views
1

Я хочу запустить PHP-файл/функцию, которая не остановится, пока она не завершит работу. Есть ли какой-нибудь вариант для этого?Время работы PHP в Apache

(Он не будет печатать любую информацию в браузере, он будет производить расчеты, и он будет хранить их в базе данных

. Примечание: Сервер Apache находится в моем компьютере

ответ

3

PHP обычно имеет. время выполнения и длительные запросы будут сохраняться в HTTP-соединении.

Вы хотите добавить работу в пакетную очередь и попросить сотрудника забрать работу за пределами HTTP-запроса (возможно, через работу Cron)

Here is a good tutorial by IBM, в котором подробно описывается метод cron с таблицами MySQL и кодом PHP. Другими параметрами являются системы обмена сообщениями/очереди, а не база данных.

0

Если вы работаете на Windows, (предполагается, что вы), вы можете использовать объект WindowsShell для EXEC сценария. Это запустит скрипт в фоновом режиме, не открывая окно командной строки на рабочем столе.

$shell = new COM("WScript.Shell"); 
$cmd = $WshShell->Run("c:\php\cli\php.exe c:\yourscript.php", 0, false); 

В CLI-версии PHP скрипты не имеют максимального времени выполнения.

Если вам просто нужно запустить PHP-скрипт и не нужно проходить через веб-браузер, чтобы запустить его, просто запустите скрипт напрямую, используя версию CLI для PHP.

Если вы используете систему UNIX, используйте exec(). Та же идея.

1

поставил это утверждение в верхней части сценария:

set_time_limit(0); 

Это сделает скрипт запуска на неопределенное время.

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