Убить процесс Python, если он не завершится в определенное время? - PullRequest
2 голосов
/ 29 ноября 2010

Вот сценарий: у меня есть сценарий Python, который вызывается из браузера с AJAX.Я хочу, чтобы скрипт Python запускался и возвращал свои выходные данные, однако, если он не сможет успешно работать в течение 10 секунд, я хочу, чтобы скрипт прервал и возвратил какой-то другой процесс.Кроме того, в самом начале я хочу записать, какой был запрос.

Вот как я думаю о его создании: Сценарий Commander Вызывает три сценария, порожденные как подпроцессы?1. основной код для выполнения и возврата его результата 2. второй сценарий, который ждет 10 секунд, а затем возвращает False 3. третий сценарий для записи запроса в базу данных. Командный сценарий возвратит либо результат из (1)или ошибка, если он слышит обратно от (2).

Как бы вы на самом деле это реализовали?Я не могу понять, должен ли я использовать библиотеку потоков или библиотеку os с подпроцессами.

Или есть лучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 29 ноября 2010

Если этот скрипт запускается в Unix-подобной системе, вы можете использовать SIGALRM для этого.Есть пример в документах Python .

0 голосов
/ 29 ноября 2010

Я настоятельно рекомендую использовать многопроцессорную библиотеку Python. Имеет process.terminate() методов.

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