Reputation: 46909
In the following code, the callback() is not called at the repsective time(now+0.2and now+0.1) and also stopper() ,what is wrong here
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();
Upvotes: 0
Views: 753
Reputation: 17366
.call_later(delay, cb, *args)
requires delay
parameters, time delta in seconds (float
).
But you pass now + delay
to these calls.
Either drop now
or replace .call_later()
with .call_at()
.
Upvotes: 2