asyncio Python的节流器,节流到下一整秒钟

aio-throttle-to-next-second的Python项目详细描述


aio节流到下一秒CircleCITest Coverage

asyncio Python的节流器,它将节流到下一秒,如time.time()报告的那样。这对于对使用“最新时间戳获胜”策略(如S3)的服务的请求强制排序非常有用。

安装

pip install aio-throttle-to-next-second

使用

创建一个没有参数的共享Throttler

^{pr2}$

然后,就在要被限制的代码段之前,调用这个和await它的结果。

awaitthrottler()# Each execution reaching this line will reach this line at a different second

示例:多个任务被限制

importasyncioimporttimefromaio_throttle_to_next_secondimportThrottlerasyncdefmain():throttler=Throttler()awaitasyncio.gather(*[worker(throttler)for_inrange(10)])asyncdefworker(throttler):awaitthrottler()# Each print will show a distinct second, though all workers started togetherprint(int(time.time()))loop=asyncio.get_event_loop()loop.run_until_complete(main())loop.close()

示例:单个任务被限制

importasyncioimportrandomimporttimefromaio_throttle_to_next_secondimportThrottlerasyncdefmain():throttler=Throttler()for_inrange(10):awaitthrottler()# Each print will show a distinct second, though there is a random sleepprint(int(time.time()))awaitasyncio.sleep(random.random())loop=asyncio.get_event_loop()loop.run_until_complete(main())loop.close()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接在一个屏幕上成功下载,在第二个屏幕上用几乎相同的代码获得错误   java调用super。超级的方法,跳过超级。方法   使用Web服务连接到sharepoint 2013的Java应用程序   java我无法正确呈现editText   httpurlconnection如何在java中检查url连接状态   java Spring Security可以为同一用户接受多个密码吗?   java如何在PreparedStatement中使用自动生成的@Id?   java每个数组表示一个位模式   java我不确定如何记录鼠标在某个区域被点击的次数   spring如何解决:java。lang.NoSuchMethodError:javax。坚持不懈实体管理器。createStoredProcedureQuery(Ljava/lang/String;)   java如何为blackberry中listfield项内的不同字段触发事件   安卓使用Proguard混淆java代码   java在grails 2中与多个数据源有一个和一个域关联。十、   java在尝试在单击按钮时返回combobox值时一直出错   java我可以在setter中使用@Resource注释而不是字段吗?   java Eclipse调试步进不工作   java比较相同对象的两个表并选择不同的表