Cierniostwor
Cierniostwor

Reputation: 449

Setting the time for the process in Python

I would like set a limit time for process in python, because this process doesn't end with itself. It is something like this:

def forever():
    pass

somethink_to_do_this_20_secounds:
    forever()

print("this print after 20 seconds of forever() work")

I found a topic about checking program execution time, but I did not find setting the time limit for the program How do I get time of a Python program's execution?

How i can realize this somethink_to_do_this_20_secounds in Python? By using subprocess?

Upvotes: 0

Views: 482

Answers (1)

Kristiyan Gospodinov
Kristiyan Gospodinov

Reputation: 586

You could use the concurrent module to fire a separate thread and wait for it 20 seconds.

from concurrent.futures import ThreadPoolExecutor, TimeoutError
from time import sleep


def forever():
    sleep(21)

pool = ThreadPoolExecutor()
future = pool.submit(forever)
try:
    result = future.result(20)
except TimeoutError:
    print("Timeout")

print("this print after 20 seconds of forever() work")

Upvotes: 1

Related Questions