 |
apache/php continuos script execution |
 |
14.09.2005, 13:49
|
#1
|
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 39
Posts: 4,007
Rep Power: 0
|
apache/php continuos script execution
Короче намедне занялся следующим извращением. В пхп.ини ставим max_execution_time = 0;
далее следующий пхп код
PHP Code:
ob_implicit_flush();
//...
while(1) {
//dump output if any
sleep(10);
} //while
Короче что делает наверное понятно. Скрипт висит, ждет обновлений в БД и их выдает. И так до того как какая нибудь сверхестественная сила не перекроет его.
Работать то эта штука работает и иконка в браузере крутится как маховое колесо, но проблема в том, что когда в этом же самом браузере нажать на кнопку стоп, получается не очень хоропо. Конкретно апач впадает в полную нирвану и отказывается обслуживать этот аддресс (другие вирт хосты обслуживает). Вытащит его из этого цивлизованными методами не удается.
Даю netstat -a , праздник на нашей улице
TCP dawn-devil:http dawn-devil:1090 CLOSE_WAIT
Ну собственно если зверски не перекрыть апач так и останется.
Что вообще можно тут поделать? И возможно ли как нибудь изавится от close wait-a?
|
|
|
|
 |
14.09.2005, 14:11
|
#2
|
|
Moderator
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Rep Power: 8
|
А что если джаваскриптом периодически обновлять?
|
|
|
|
14.09.2005, 14:17
|
#3
|
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 39
Posts: 4,007
Rep Power: 0
|
Дык два дня мужика уговоривал на рефреш. Предлагал все что мог, беззвучный рефреш и все такое. не хочет.
|
|
|
|
14.09.2005, 14:29
|
#4
|
|
Moderator
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Rep Power: 8
|
Не думаю, что апач рассчитан на такие издевательства типа continuous execution.
На шаред хостингах никто не позволит грузить такой пхп. А если это custom project и его сервак, то можно имхо и свой клиент написать, чтобы к базе целялся.
|
|
|
|
14.09.2005, 14:38
|
#5
|
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 39
Posts: 4,007
Rep Power: 0
|
Quote:
|
Originally Posted by acid
Не думаю, что апач рассчитан на такие издевательства типа continuous execution.
На шаред хостингах никто не позволит грузить такой пхп. А если это custom project и его сервак, то можно имхо и свой клиент написать, чтобы к базе целялся.
|
Я видел чаты имплементирующие что-то подобное на пхп. Правда я не уверен что именно такое. К тому же я почти уверен что такого можно достич с перл/апач.
Сервак у мужика свой, такой проблемы там нет.
У меня винды стоят, не знаю, может на никсе таких проблем не будет...
|
|
|
|
14.09.2005, 18:46
|
#6
|
|
Moderator
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Rep Power: 8
|
на линуксе думаю таких проблем не будет.
|
|
|
|
14.09.2005, 19:52
|
#7
|
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 56
Posts: 3,118
Rep Power: 0
|
гыы . кого клиента - в шею  ))) а ваще .
js + xmlhttprequest поможет
|
|
|
|
15.09.2005, 05:16
|
#8
|
|
Moderator
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
|
А если вместо while(1) написать while(!connection_aborted()) ?
|
|
|
|
15.09.2005, 14:00
|
#9
|
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 39
Posts: 4,007
Rep Power: 0
|
Quote:
|
Originally Posted by hayk
А если вместо while(1) написать while(!connection_aborted()) ?
|
Не успел, а ведь мог хотя бы обнадежить  )) Я и это успел попробовать, не работает.
Зато, хорошая новость заключается в том, что под линукс сработало и очень даже мило, причем сработало даже с вайл(1) без всякого коннекшн абортед (хотя наверное в конечном итоге сделаю так).
nm, так ведь все равно с рефрешом получается. разве что покультурней.  )
|
|
|
|
15.09.2005, 17:01
|
#10
|
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 56
Posts: 3,118
Rep Power: 0
|
кстати, а ты вот это читал?
не знаю, насколько это актуально в нынешних версиях браузеров, но тем не менее
http://ejohn.org/blog/streaming-http-server-push/
http://wp.netscape.com/assist/net_sites/pushpull.html
|
|
|
|
15.09.2005, 19:20
|
#11
|
|
Moderator
Join Date: 03 2002
Location: Russia
Posts: 123
Rep Power: 0
|
Quote:
|
Originally Posted by Obelix
Не успел, а ведь мог хотя бы обнадежить  )) Я и это успел попробовать, не работает.
Зато, хорошая новость заключается в том, что под линукс сработало и очень даже мило, причем сработало даже с вайл(1) без всякого коннекшн абортед (хотя наверное в конечном итоге сделаю так).
|
Просто насколько я помню, у меня работало
|
|
|
|
16.09.2005, 15:12
|
#12
|
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 39
Posts: 4,007
Rep Power: 0
|
Интересно, спасибо  Стоит попробовать, хотя особо обнадеживающего тут нету.
|
|
|
|
16.09.2005, 16:00
|
#13
|
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 56
Posts: 3,118
Rep Power: 0
|
Quote:
|
Originally Posted by Obelix
Интересно, спасибо  Стоит попробовать, хотя особо обнадеживающего тут нету.
|
а вам никто и не обещал, что будет легко
|
|
|
|
24.09.2005, 04:15
|
#14
|
|
панаехавший
Join Date: 06 2003
Location: форпост
Age: 39
Posts: 4,007
Rep Power: 0
|
Erb a microsofte mernelu prcnenq drancic?
|
|
|
|
|
All times are GMT. The time now is 02:41. |
|
|