在下面的代码中,回调()不会在重复时间调用(现在+ 0.2和现在+ 0.1)以及stop(),这里有什么错误
def callback(n,loop):
print('Callback {} invoked at {}'.format(n,loop.time()))
def stopper(loop):
print("Stopper invoked at {}".format(loop.time()))
loop.stop()
event_loop = asyncio.get_event_loop()
try:
now =event_loop.time()
print('clock time: {}'.format(time.time()))
print('loop time: {}'.format(now))
print('Registering callbacks')
event_loop.call_later(now + 0.2,callback,1,event_loop)
event_loop.call_later(now + 0.1,callback,2,event_loop)
event_loop.call_later(now + 0.3,stopper,event_loop)
event_loop.call_soon(callback,3,event_loop)
print('Entering event loop')
event_loop.run_forever()
finally:
print('Closing event loop')
event_loop.close();
答案 0 :(得分:2)
.call_later(delay, cb, *args)
需要delay
个参数,以秒为单位的时间增量(float
)。
但是你将now + delay
传递给这些电话。
删除now
或将.call_later()
替换为.call_at()
。