Завершить выполнение функции VIEWS.PY, если превысит определенное время - DJANGO - PullRequest
0 голосов
/ 17 сентября 2018

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

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 завершит его выполнение или если это займет больше определенного времени, также завершите его.

Спасибо

...