Как ограничить время выполнения функции в Python?
Ответы
Алёна Шереметьева
18 июня 2024
Чтобы ограничить время выполнения функции в Python, можно использовать модуль signal . Он представляет собой таймер, который будет считаться в фоновом режиме параллельно с программой. Когда таймер отсчитает нужное количество секунд, он сгенерирует исключение TimeoutError.
Пример кода:
import signal
def raise_timeout(signum, frame):
raise TimeoutError
signal.signal(signal.SIGALRM, raise_timeout)
def my_func():
signal.alarm(5)
try:
my_func()
finally:
signal.alarm(0)
Этот подход подходит для Unix-подобных систем. Если нужно обеспечить работу таймаута на различных платформах, можно рассмотреть модули concurrent.futures или multiprocessing.
0
0