Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Срок жизни запросов 
:(
    Опции темы
setnull
Дата 14.9.2010, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



Все здравствуйте!

Вопрос по большей мере не по ПХП, но и не по Администрированию Апачи. Пишу сюда.
Интересует, как по запросу производить действия, срок выполнения которых превышает (пусть даже не на много) время ожидания ответа на запрос клиентом.
При этом наверняка же и у Сервера есть свои рамки (тоже вопрос)? 
Т.е. если клиент не дождался, и разорвал соединение, продолжается ли выполнение сода на сервере? Или у сервера (именно Апачи) есть свои ограничения на срок выполнения?
Но даже если можно продолжать без клиента, все равно как-то некрасиво: клиент ничего не знает об исходе выполнения операции...
Какие есть подходы выполнения таких задач?
Очередь+Крон? Или есть более удобные средства (на своем сервере)?

Спасибо!
PM MAIL   Вверх
Sanchezzz
Дата 14.9.2010, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



вроде продолжает.
крон да с отправкой на емейл пользователю о результатах или ошибках.

как напишешь так и будет работать


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
SneG0K
Дата 14.9.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Если вызвать скрипт и закрыть браузер то скрипт продолжит свою работу.
PM WWW Skype   Вверх
setnull
Дата 14.9.2010, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



а как долго?
Если, к примеру, грубо говоря, задача у скрипта на час, у самого Апачи хватит терпения его выполнять?
И при этом можно вообще в скрипте отравить 
HTTP 200, задачу понял
, самому разорвать соединение (чтоб со стороны клиента это выглядело как полноценный запрос), и на час уйти с головой в исполнение...
PM MAIL   Вверх
MoLeX
Дата 14.9.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(setnull @  14.9.2010,  10:33 Найти цитируемый пост)
а как долго?
Если, к примеру, грубо говоря, задача у скрипта на час, у самого Апачи хватит терпения его выполнять?

y PHP не хватит


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Nord001
Дата 14.9.2010, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 1.3.2007
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Насколько я знаю за то, что бы PHP выполнял скрипт после закрытия страницы отвечает ф-ция 
Код

ignore_user_abort(true);

и вроде она по умолчанию в false

Я обычно для этого использую 
Код

set_time_limit(0);
ini_set("max_execution_time", 0);
ignore_user_abort(true);

PM MAIL ICQ Skype   Вверх
setnull
Дата 14.9.2010, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



Цитата(Nord001 @ 14.9.2010,  11:29)
Насколько я знаю за то, что бы PHP выполнял скрипт после закрытия страницы отвечает ф-ция 
Код

ignore_user_abort(true);

и вроде она по умолчанию в false

Я обычно для этого использую 
Код

set_time_limit(0);
ini_set("max_execution_time", 0);
ignore_user_abort(true);

Спасибо!!! Именно это и ожидал...
Вот, что еще нашел:

Код

// buffer all upcoming output
ob_start();
echo "We'll email you as soon as this is done.";

// get the size of the output
$size = ob_get_length();

// send headers to tell the browser to close the connection
header("Content-Length: $size");
header('Connection: close');

// flush all output
ob_end_flush();
ob_flush();
flush();

/******** background process starts here ********/
work_smart_not_hard(  :);



Это сообщение отредактировал(а) setnull - 14.9.2010, 13:21
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.