Python程序超時處理


使用timeout_decorator模塊進行處理,該模塊提供了裝飾器

[root@web1 ~]# pip install timeout_decorator

[root@web1 ~]# vim a.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import time
import timeout_decorator


@timeout_decorator.timeout(5)
def outer():
    time.sleep(2)
    return 2


fn = outer()
print(fn)

運行

[root@web1 ~]# python3 a.py 
2

超時的時候運行

[root@web1 ~]# python3 a.py       將a.py中的時間更改為6
Traceback (most recent call last):
  File "a.py", line 13, in <module>
    fn = outer()
  File "/usr/local/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py", line 82, in new_function
    return function(*args, **kwargs)
  File "a.py", line 9, in outer
    time.sleep(6)
  File "/usr/local/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py", line 69, in handler
    _raise_exception(timeout_exception, exception_message)
  File "/usr/local/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py", line 45, in _raise_exception
    raise exception()
timeout_decorator.timeout_decorator.TimeoutError: 'Timed Out'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM