Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development
Register

Reply
 
LinkBack Thread Tools
Old 14.09.2005, 14:49   #1
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default 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?
Reply With Quote
Old 14.09.2005, 15:11   #2
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default

А что если джаваскриптом периодически обновлять?
Reply With Quote
Old 14.09.2005, 15:17   #3
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Дык два дня мужика уговоривал на рефреш. Предлагал все что мог, беззвучный рефреш и все такое. не хочет.
Reply With Quote
Old 14.09.2005, 15:29   #4
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default

Не думаю, что апач рассчитан на такие издевательства типа continuous execution.
На шаред хостингах никто не позволит грузить такой пхп. А если это custom project и его сервак, то можно имхо и свой клиент написать, чтобы к базе целялся.
Reply With Quote
Old 14.09.2005, 15:38   #5
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally Posted by acid
Не думаю, что апач рассчитан на такие издевательства типа continuous execution.
На шаред хостингах никто не позволит грузить такой пхп. А если это custom project и его сервак, то можно имхо и свой клиент написать, чтобы к базе целялся.
Я видел чаты имплементирующие что-то подобное на пхп. Правда я не уверен что именно такое. К тому же я почти уверен что такого можно достич с перл/апач.
Сервак у мужика свой, такой проблемы там нет.

У меня винды стоят, не знаю, может на никсе таких проблем не будет...
Reply With Quote
Old 14.09.2005, 19:46   #6
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default

на линуксе думаю таких проблем не будет.
Reply With Quote
Old 14.09.2005, 20:52   #7
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default

гыы . кого клиента - в шею ))) а ваще .
js + xmlhttprequest поможет
Reply With Quote
Old 15.09.2005, 06:16   #8
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

А если вместо while(1) написать while(!connection_aborted()) ?
Reply With Quote
Old 15.09.2005, 15:00   #9
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally Posted by hayk
А если вместо while(1) написать while(!connection_aborted()) ?
Не успел, а ведь мог хотя бы обнадежить )) Я и это успел попробовать, не работает.

Зато, хорошая новость заключается в том, что под линукс сработало и очень даже мило, причем сработало даже с вайл(1) без всякого коннекшн абортед (хотя наверное в конечном итоге сделаю так).

nm, так ведь все равно с рефрешом получается. разве что покультурней. )
Reply With Quote
Old 15.09.2005, 18:01   #10
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default

кстати, а ты вот это читал?
не знаю, насколько это актуально в нынешних версиях браузеров, но тем не менее

http://ejohn.org/blog/streaming-http-server-push/
http://wp.netscape.com/assist/net_sites/pushpull.html
Reply With Quote
Old 15.09.2005, 20:20   #11
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally Posted by Obelix
Не успел, а ведь мог хотя бы обнадежить )) Я и это успел попробовать, не работает.

Зато, хорошая новость заключается в том, что под линукс сработало и очень даже мило, причем сработало даже с вайл(1) без всякого коннекшн абортед (хотя наверное в конечном итоге сделаю так).
Просто насколько я помню, у меня работало
Reply With Quote
Old 16.09.2005, 16:12   #12
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally Posted by nm
кстати, а ты вот это читал?
не знаю, насколько это актуально в нынешних версиях браузеров, но тем не менее

http://ejohn.org/blog/streaming-http-server-push/
http://wp.netscape.com/assist/net_sites/pushpull.html
Интересно, спасибо Стоит попробовать, хотя особо обнадеживающего тут нету.
Reply With Quote
Old 16.09.2005, 17:00   #13
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 0
Default

Quote:
Originally Posted by Obelix
Интересно, спасибо Стоит попробовать, хотя особо обнадеживающего тут нету.
а вам никто и не обещал, что будет легко
Reply With Quote
Old 24.09.2005, 05:15   #14
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Erb a microsofte mernelu prcnenq drancic?
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 07:02.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.