Browse Source

Clarify `on_ready` triggering more than twice.

On that note, fix the background_task example to use `Client.run`
instead of manual loop management. That way the task will be cleaned
up and cancelled inside `Client.run`.
pull/204/merge
Rapptz 9 years ago
parent
commit
d914c0a4e4
  1. 3
      docs/api.rst
  2. 12
      examples/background_task.py

3
docs/api.rst

@ -108,6 +108,9 @@ to handle it, which defaults to print a traceback and ignore the exception.
.. warning::
This function is not guaranteed to be the first event called.
Likewise, this function is **not** guaranteed to only be called
once. This library implements reconnection logic and thus will
end up calling this event whenever a RESUME request fails.
.. function:: on_resumed()

12
examples/background_task.py

@ -19,13 +19,5 @@ async def on_ready():
print(client.user.id)
print('------')
loop = asyncio.get_event_loop()
try:
loop.create_task(my_background_task())
loop.run_until_complete(client.login('token'))
loop.run_until_complete(client.connect())
except Exception:
loop.run_until_complete(client.close())
finally:
loop.close()
client.loop.create_task(my_background_task())
client.run('token')

Loading…
Cancel
Save