Мне нужно завершить функцию, если она превышает определенное время. Погуглив, я нашел решение, но теперь столкнулся с другой проблемой. Я делаю что-то вроде этого.
def index(Request):
p = multiprocessing.Process(target=foo, name="Foo", args=(5,))
p.start()
# Wait 10 seconds for foo
time.sleep(10)
# Terminate foo
p.terminate()
# Cleanup
p.join()
return HttpResponse("exit")
//run foo for 25 second
def foo(n):
for i in range(5 * n):
times = strftime("%H:%M:%S", gmtime())
print (times)
time.sleep(1)
Приведенный выше код решает мою проблему, когда он завершает процесс через 10 секунд, но если функция foo
завершает свою задачу через 5 секунд, для завершения основного потока все равно требуется 10 секунд из-за time.sleep (10)
Итак, я хотел завершить поток, если foo
завершит его выполнение или если это займет больше определенного времени, также завершите его.
Спасибо