Примитивный скрипт, однако зависает на половине хостингов...

Diver

Новичок
Примитивный скрипт, однако зависает на половине хостингов...

Есть скрипт:
PHP:
<?php

	ignore_user_abort();
	set_time_limit(60*60);

	for($i=0; $i<1000; $i++)
	{
		$file = fopen ('result.txt', 'a');
			fwrite($file, "$i\r\n");
		fclose($file);
		sleep(1);
	}
?>
На половине хостингов будет работать нормально, на другой отработает только определенное время (чаще 300 или 180 секунд), есть подозрение, что причина в Apache, который по каким-то причинам убивает долгий процесс. Подскажите, как обойти это ограничение программно или какие настройки необходимо изменить в Apache.
 

Diver

Новичок
Можно упростить скрипт:

PHP:
<?php 

    ignore_user_abort(); 
    set_time_limit(60*60); 

    for($i=0; $i<1000; $i++) 
    { 
        sleep(1); 
    } 

?>
Он все равно не отработает до конца, это можно отслеживать просто мониторя работающие процессы.

Вообще есть подозрение, что Apache убивает скрипт из-за того, что тот не возвращает результаты браузеру. Вариант с тем, что бы выводить постоянно какие-то данные и принудительно отправлять их мне не подходит.
 

Diver

Новичок
Естественно причина не в safe_mode, все настройки PHP так же вроде пересмотрел, мало вероятно, что причина в них.
 

Diver

Новичок
set_time_limit есно не причем, однако в пункте описывающим max_execution_time есть такой абзац:

Your webserver can have other timeouts. E.g. Apache has Timeout directive, IIS has CGI timeout function, both default to 300 seconds. See the webserver documentation for meaning of it.

Т.е. как я и подозревал дело скорее всего в настройках Apache. Тогда другой вопрос можно ли обойти средствми PHP этот таймаут?
 

Diver

Новичок
Скрипт запускает другой удаленный скрипт. И кроме того необходимо, что бы скрипт прекрасно работал как на Win так и на Unix системах без збоев. Не ужели нельзя как-то обойти эти ограничения?
 

chisto_tolyan

Враг народа
скрипты, работающие более 1-2 секунд надо запускать в фоновом режиме, неважно кто и откуда его запускает

-~{}~ 16.11.06 16:03:

а про Win&Unix это уже другая история=)
 

Diver

Новичок
Проверил, дествительно запуская в фоновом режиме скрипт работает без остановок. Осталось проверить как этот способ будет работать на различных платформах, но думаю это уже намного проще.
 
Сверху