python监控函数超时_如何为自己的函数或接口实现Timeout超时监听(Python)?

本文介绍了如何使用Python通过多线程和Queue来实现函数超时监听。通过创建一个额外的线程运行耗时任务,并在主线程中设置超时限制,确保接口调用在指定时间内返回,超时则返回预设的超时信息。
摘要由CSDN通过智能技术生成

背景

需求背景:

最近收到一个需求,需要为某个接口实现超时检测功能。由于计算量和服务问题,该接口调用返回的时间可能出现过长的情况。需求方希望设定一个超时参数,当函数调用时间超时则返回一个超时的json数据,未超时则正常返回数据。

最终我使用了多线程 + 队列Queue对需求进行了实现,故总结一下本次实现的方法和思路。

原始代码模拟

使用如下代码最简单地还原一下原始接口情景,该代码下,调用task()方法可能存在随机的5~20秒延时才能返回:

import time

import random

# 该接口调用时间可能为5秒到20秒,希望能有一个接口超时检测功能。

# 若延迟在10秒内,则返回正常信息;若延迟大于10秒,则立即返回一个超时的信息。

def task():

print("start task...")

start = time.time()

# 模拟任务随机耗时

time.sleep(random.randint(5, 20))

end = time.time()

print("该次接口调用耗时:{}s".format(end-start))

return {"status": "succeed"}

if __name__ == '__main__':

result = task()

print("返回结果为:{}".format(result))

结果示例࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值