广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python:waitfor轮询
  • 233
分享到

python:waitfor轮询

pythonwaitfor轮询 2023-01-31 07:01:36 233人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

有时候需要等待一个时间不确定的事件的发生。如果直接sleep最大时长,然后判断预期,则严重影响效率。可以改用轮询机制,一旦条件满足,立即返回;反之等到最后超时。 def waitfor(getter, timeout=3, interv

有时候需要等待一个时间不确定的事件的发生。如果直接sleep最大时长,然后判断预期,则严重影响效率。可以改用轮询机制,一旦条件满足,立即返回;反之等到最后超时。


def waitfor(getter, timeout=3, interval=0.5, *args):
	starttime = datetime.datetime.now()
	while True:
		if getter(args):
			return
		else:
			runtime = datetime.datetime.now() - starttime
			print runtime
			if runtime.seconds >= timeout:
				raise Exception
			time.sleep(interval)
	
current_value = 1	
def testgetval(args):
	wanted_value = args[0]
	global current_value
	current_value += 1
	print '%d, %d' % (wanted_value, current_value)
	return current_value > wanted_value	
		
if __name__ == '__main__':
	waitfor(testgetval, 1, 0.3, 2)
	print '======================='
	waitfor(testgetval, 1, 0.3, 8)

2, 2
0:00:00.001000
2, 3
====================
8, 4
0:00:00.002000
8, 5
0:00:00.303000
8, 6
0:00:00.605000
8, 7
0:00:00.907000
8, 8
0:00:01.209000
Traceback (most rece
  File "multiver.py"
    waitfor(testgetv
  File "multiver.py"
    raise Exception
Exception


第一轮测试,在1秒中内成功返回

第二轮测试,在预定的时间内未得到预期结果,抛出超时异常


--结束END--

本文标题: python:waitfor轮询

本文链接: https://www.lsjlt.com/news/191275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python:waitfor轮询
    有时候需要等待一个时间不确定的事件的发生。如果直接sleep最大时长,然后判断预期,则严重影响效率。可以改用轮询机制,一旦条件满足,立即返回;反之等到最后超时。 def waitfor(getter, timeout=3, interv...
    99+
    2023-01-31
    python waitfor 轮询
  • java常规轮询长轮询Longpolling实现示例详解
    目录正文常规轮询长轮询正文 长轮询是与服务器保持持久连接的最简单的方式,它不使用任何特定的协议,例如 WebSocket 或者 Server Sent Event。 它很容易实现,在...
    99+
    2022-12-29
    java 常规轮询长轮询 java Long polling
  • Java负载均衡算法实现之轮询和加权轮询
    目录1.普通轮询算法2.加权轮询算法2.1.实现方式一2.2.实现方式二(重点难点)2.2.1.概述2.2.2.举个例子理解算法2.2.3.代码实现总结1.普通轮询算法 轮询(Rou...
    99+
    2022-11-13
  • Dubbo轮询策略怎么实现
    Dubbo提供了多种轮询策略的实现方式,可以通过在服务提供者和消费者的配置文件中进行配置。 服务提供者配置: 在服务提供者的配置文...
    99+
    2023-10-22
    Dubbo
  • vue轮询请求如何实现
    今天小编给大家分享一下vue轮询请求如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2022-10-19
  • Node.JS中怎么实现事件轮询
    这篇文章将为大家详细讲解有关Node.JS中怎么实现事件轮询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。网站延迟的开销对于一个网站,后台大多不需要进行复杂...
    99+
    2022-10-19
  • Node.JS中事件轮询(Event Loop)的解析
    当我们知道I/O操作和创建新线程的开销是巨大的! 网站延迟的开销 对于一个网站,后台大多不需要进行复杂的计算,我们的程序大多时间花费在I/O读取上。 看到一个数据:IO操作可以比数据处理慢几个数量级。高...
    99+
    2022-06-04
    事件 JS Node
  • 如何使用ionic播放轮询广告
    这篇文章主要介绍了如何使用ionic播放轮询广告,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码示例:<!DOCTYPE ...
    99+
    2022-10-19
  • 如何使用Ajax轮询请求状态
    这篇文章主要为大家展示了“如何使用Ajax轮询请求状态”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Ajax轮询请求状态”这篇文章吧。这里要实现的功能是...
    99+
    2022-10-19
  • Java如何使用ReentrantLock实现长轮询
    Java代码 1. ReentrantLock 加锁阻塞,一个condition对应一个线程,以便于唤醒时使用该condition一定会唤醒该线程 public JSO...
    99+
    2022-11-12
  • Linux日志定时轮询流程机制
    本篇内容介绍了“Linux日志定时轮询流程机制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!logrotate介绍对于Linux系统安全来说...
    99+
    2023-06-16
  • Python中怎么利用backoff实现轮询
    本篇文章给大家分享的是有关Python中怎么利用backoff实现轮询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。backoff 模块简介及安装这个模块主要提供了是一个装饰器...
    99+
    2023-06-02
  • mysql慢查询日志轮转_MySQL慢查询日志实操
    目录一、概述二、慢查询日志设置1、临时设置2、查询慢查询日志的开启状态和慢查询日志储存的位置3、查看存放日志的形式4、永久开启慢日志三、慢查询测试四、慢查询分析工具五、mysql 清理slowlog方法六、小结一、概述 ...
    99+
    2022-09-12
  • 关于SpringCloud Ribbon替换轮询算法问题
    Spring Cloud Ribbon是基于Netlix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项。 Ribbon负载均衡调用...
    99+
    2022-11-12
  • dubbo负载均衡轮询原理是什么
    Dubbo的负载均衡轮询原理是指当多个服务提供者同时存在时,将请求按照顺序依次分发给每个服务提供者,每个提供者处理完一个请求后再依次...
    99+
    2023-10-09
    dubbo
  • node.js中libuv事件轮询的示例分析
    这篇文章主要为大家展示了“node.js中libuv事件轮询的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“node.js中libuv事件轮询的示例分析...
    99+
    2022-10-19
  • Golang加权轮询负载均衡的实现
    目录实现加权轮询负载均衡思路加权轮询负载均衡代码测试代码实现加权轮询负载均衡思路 代码实现一个加权负载均衡 Weight    &...
    99+
    2022-11-12
  • Jenkins定时构建与轮询SCM的方法
    这篇文章主要讲解了“Jenkins定时构建与轮询SCM的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Jenkins定时构建与轮询SCM的方法”吧!一、区别定时构建:不管远程代码分支上(...
    99+
    2023-06-03
  • jquery与php结合如何实现AJAX长轮询
    这篇文章主要介绍了jquery与php结合如何实现AJAX长轮询,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HTTP是无状态、单向的协议,...
    99+
    2022-10-19
  • JavaScript实现可终止轮询请求的方法
    目录什么是轮询请求?轮询的要点setInterval的问题实现轮询准备工作基础版进阶版最终版最近遇到了一个需求,需要每隔5s请求一个接口获取接口返回的结果,返回成功后停止请求,接口的...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作