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使用matplotlib和pandas實現(xiàn)的畫圖操作【經(jīng)典示例】
這篇文章主要介紹了Python使用matplotlib和pandas實現(xiàn)的畫圖操作,結合實例形式分析了Python基于matplotlib和pandas的數(shù)值運算與圖形顯示操作相關實現(xiàn)技巧,并對部分代碼的圖形顯示進行了顯示效果測試,需要的朋友可以參考下2018-06-06
python用pandas數(shù)據(jù)加載、存儲與文件格式的實例
今天小編就為大家分享一篇python用pandas數(shù)據(jù)加載、存儲與文件格式的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python中創(chuàng)建相關系數(shù)矩陣的方法小結
相關系數(shù)矩陣是一種用于衡量變量之間關系的重要工具,本文將介紹在 Python 中創(chuàng)建相關系數(shù)矩陣的不同方法,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12
Python使用colorlog實現(xiàn)控制臺管理日志多種顏色顯示
colorlog 是一個 Python 日志庫,它可以讓你在控制臺中以彩色的方式顯示日志消息,使得日志更易于閱讀和理解,下面就跟隨小編一起來看看它的具體應用吧2024-03-03

