【发布时间】:2018-08-08 16:16:03
【问题描述】:
我正在尝试使用不同的参数同时(大约或当然)运行多个函数,并在每分钟开始时重复该操作。
我设法得到了一个 asyncio 示例来运行我得到一个函数 callback 在特定时间使用不同的参数运行,但我不知道如何运行它(并继续运行它永远)在非常特定的时间(即我想在每分钟开始时运行它,所以在 19:00:00、19:01:00 等......)。
Asyncio call_at 应该能够做到这一点,但它使用的时间格式不是标准的 python 时间格式,我无法确定将该时间格式指定为下一分钟的 00 秒。
import asyncio
import time
def callback(n, loop, msg):
print(msg)
print('callback {} invoked at {}'.format(n, loop.time()))
async def main(loop):
now = loop.time()
print('clock time: {}'.format(time.time()))
print('loop time: {}'.format(now))
print('registering callbacks')
loop.call_at(now + 0.2, callback, 1, loop, 'a')
loop.call_at(now + 0.1, callback, 2, loop, 'b')
loop.call_soon(callback, 3, loop, 'c')
await asyncio.sleep(1)
event_loop = asyncio.get_event_loop()
try:
print('entering event loop')
event_loop.run_until_complete(main(event_loop))
finally:
print('closing event loop')
event_loop.close()
【问题讨论】:
标签: python python-asyncio