当前位置:首页 >> 编程语言 >> 【Python】aio Queue 的超时封装,诺基亚305

【Python】aio Queue 的超时封装,诺基亚305

0evadmin 编程语言 1
文件名:【Python】aio Queue 的超时封装,诺基亚305 【Python】aio Queue 的超时封装

一般封装生产者消费者模型的时候会用到 asyncio.Queue,queue 的 put 和 get 操作都是阻塞的(当然可以通过 _nowait 方法改为非阻塞),取数据的时候如果没数据则会一直阻塞。下面通过计数的方法给 asyncio.Queue 添加超时操作:

queue = asyncio.Queue(3)empty_count, max_empty_count, empty_delay = 0, 10, 60while True:if queue.empty():if empty_count > max_empty_count:breakawait asyncio.sleep(empty_delay)empty_count += 1continuedata = await queue.get()# ....

这段代码定义了三个变量用于控制队列为空的行为:

empty_count 变量,用于纪录队列为空的次数max_empty_count 常量,表示队列为空的次数的最大值,超过这个值直接 break 退出循环empty_delay 常量或者变量,表示如果本次循环队列为空则等待 empty_delay 秒
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接