2013-11-18 2 views
0

Итак, у меня есть скрипт Perl. Мой скрипт должен работать даже после закрытия клиентом страницы. Итак, скажем, я нахожусь на странице по адресу http://example.com/keptalive.pl. Как только он зайдет на страницу, он отправит запрос на сервер. Теперь сервер занимает более 3 минут, чтобы обработать этот запрос ... Я хотел бы, чтобы клиент мог закрыть окно браузера, и до сих пор сервер обрабатывает запрос, а затем позволяет ему умереть.Как сохранить скрипт Perl даже после выхода из страницы?

+0

Почему вы задали тот же вопрос [] (http://stackoverflow.com/questions/20040230/how-to-keep-alive-perl-script) дважды? Пожалуйста, добавьте больше этой информации в эту другую должность SO вместо того, чтобы открывать новый вопрос. –

+0

@ S.R.I Это не тот же вопрос. Один из них основан на сохранении связи с подключенным клиентом. С этим вопросом я спрашиваю, как сохранить его в живых после выхода клиента. –

+0

Ну, мне кажется, что оба этих вопроса могут быть обработаны этим другим сообщением. Однако, в интересах осторожности и безопасности, если вы делаете то, что, я думаю, вы пытаетесь сделать - вы открываете себе потенциальную проблему безопасности. Браузеры и веб-скрипты перестают закрывать клиентское соединение по какой-либо причине. В любом случае, пожалуйста, задайте этот вопрос по связанному вопросу SO. –

ответ

1

Похоже, this отвечает на ваш вопрос.

Из ответа, используйте batch на Linux:

import os 

os.system("batch <<< '/home/some_user/do_the_due.py'") 
# or if you don't want to wait for system idle, 
# os.system("at now <<< '/home/some_user/do_the_due.py'") 

print 'Content-type: text/html\n' 
print 'Done!' 

Существует, конечно, нет причин, почему вы не могли бы сделать это в Perl, используя system, а также.

system("batch <<< 'home/some_user/dosomething.pl'"); 
# then print your page 
print "Content-type: text/html\n"; 
print "Done!"; 
Смежные вопросы