Python 超時請求或計算的處理方案
更新時間:2024年06月04日 10:42:18 作者:Buffedon
這篇文章主要介紹了Python 超時請求或計算的處理方案,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
超時機制
一般應用于處理阻塞問題
場景:
- 復雜度較大的計算(解析)某個數(shù)值、加解密計算等
- 請求中遇到阻塞,避免長時間等待
- 網(wǎng)絡波動,避免長時間請求,浪費時間
1. requests 請求超時機制
reqeusts 依賴中的Post請求中自帶 timeout 參數(shù),可以直接設置
response = requests.post(url, data=request_body, headers=headers, timeout=timeout)
2. 其他函數(shù)時間超時機制
自定義一個超時函數(shù) timeout()
import signal
from functools import wraps
import errno
import os
class TimeoutError(Exception):
pass
def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
def decorator(func):
def _handle_timeout(signum, frame):
raise TimeoutError(error_message)
def wrapper(*args, **kwargs):
signal.signal(signal.SIGALRM, _handle_timeout)
signal.alarm(seconds)
try:
result = func(*args, **kwargs)
finally:
signal.alarm(0)
return result
return wraps(func)(wrapper)
return decorator
@timeout(5)
def long_running_function():
# 這里是可能會長時間運行的代碼
# 例如,可以使用 time.sleep 來模擬長時間運行的操作
import time
time.sleep(10)
try:
long_running_function()
except TimeoutError as e:
print("Function call timed out")注:
timeout() 函數(shù)的編寫借鑒 ChatGPT4.0
到此這篇關于Python 超時請求或計算的處理的文章就介紹到這了,更多相關Python 超時請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python框架flask入門之路由及簡單實現(xiàn)方法
這篇文章主要介紹了python框架flask入門路由及路由簡單實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
python list使用示例 list中找連續(xù)的數(shù)字
這篇文章主要介紹了list中找連續(xù)的數(shù)字的示例,大家參考使用吧2014-01-01
Python常見錯誤:IndexError:?list?index?out?of?range解決
最近在寫一個爬蟲程序,但是卻出現(xiàn)了錯誤提示IndexError:?list?index?out?of?range,所以下面這篇文章主要給大家介紹了關于Python常見錯誤:IndexError:?list?index?out?of?range的解決方法,需要的朋友可以參考下2023-01-01
django authentication 登錄注冊的實現(xiàn)示例
本文主要介紹了使用Django內(nèi)置的authentication功能實現(xiàn)用戶注冊和登錄功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-11-11

