ActivePERL в Windows, где запущено несколько экземпляров сценария одновременно? - PullRequest
0 голосов
/ 20 октября 2019

Мне не удалось найти ничего, что действительно отвечало бы на мой вопрос, поэтому, если кто-нибудь сможет пролить свет на этот вопрос, я был бы благодарен.

Я не Unix /Парень из Linux, поэтому я использую ActivePerl в Windows NT.

Сценарий таков:

webscript.cgi вызывает background.pl ввыполнять грязную работу, пока пользователь продолжает просматривать сайт, используя system($cmd). Это отлично работает, но все, что мне интересно, это ЭТО:

Что произойдет, если несколько вызовов будут сделаны в течение нескольких секунд друг от друга в результате действий пользователя по запуску background.pl ? Будут ли одновременно работать несколько экземпляров background.pl ? Должен ли один экземпляр завершиться до начала следующего? Будут ли какие-либо последующие вызовы просто вызывать ошибки? Или моя машина начнет курить, а затем, возможно, взорвется? (посмеивается)

Опять же, это работает в среде Windows, поэтому я не уверен, что правила с ActivePerl немного отличаются от правил в среде Unix. Спасибо всем, кто может иметь некоторую информацию об этом!

1 Ответ

1 голос
/ 20 октября 2019

Веб-сервер ничего не знает о процессе, выполняющем background.pl, поэтому он делает то, что всегда делает. Он запускает webscript.cgi, который запускает background.pl.

Теперь, если webscript.cgi ожидает завершения background.pl, вы можете столкнуться с ситуацией, когда веб-сервер прекращает принимать запросы, потому что все его работникиработает webscript.cgi. Он возобновится после завершения сценария.

Все это очень легко проверить.


Нужно ли завершить один экземпляр, прежде чем начнется следующий?

Нет.

Будут ли просто вызваны какие-либо последующие экземпляры?

Нет.

Или моя машина начнет курить, а затем, возможно, взорвется? (посмеивается)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...