Используйте subprocess
, чтобы "обернуть" интерпретатор Python внутри скрипта Python.
Запустите интерпретатор Python, который запускает вашу вещь.
Запуск часов.
Подождите, пока не истечет время или произойдет сбой дочернего процесса.
Самый простой и ленивый способ сделать это - периодически опрашивать подпроцесс, чтобы узнать, не умер ли он. Да, это «ожидание занято», но его легко реализовать и относительно низкая стоимость ресурсов, если вы не хотите мгновенное уведомление о завершении подпроцесса.
import subprocess
import time
timeout = # your timeout interval
real_work= subprocess.Popen( "python the_real_work.py" )
start= time.time()
status= real_work.poll()
while time.time()-start < timeout and not status:
time.sleep( 10.0 )
status= real_work.poll()
if not status:
real_work.kill()
Нечто подобное может сработать. У него есть состояние гонки, если случается, что он выходит прямо в интервале времени ожидания; убийство может закончиться неудачей.