aboutsummaryrefslogtreecommitdiff
path: root/examples/background_task.py
diff options
context:
space:
mode:
authorSebastian Law <[email protected]>2021-03-30 17:24:28 -0700
committerGitHub <[email protected]>2021-03-30 20:24:28 -0400
commit5ed47cacc755a915ebb1475dd98794c62e76b79b (patch)
tree8f6949c6943fe85357597683513dbd684c4bcb8d /examples/background_task.py
parentRaise error if position could not be resolved in GuildChannel.move (diff)
downloaddiscord.py-5ed47cacc755a915ebb1475dd98794c62e76b79b.tar.xz
discord.py-5ed47cacc755a915ebb1475dd98794c62e76b79b.zip
Update background_task example to use ext.tasks
Diffstat (limited to 'examples/background_task.py')
-rw-r--r--examples/background_task.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/examples/background_task.py b/examples/background_task.py
index a72862fb..f2da6750 100644
--- a/examples/background_task.py
+++ b/examples/background_task.py
@@ -1,12 +1,16 @@
+from discord.ext import tasks
+
import discord
-import asyncio
class MyClient(discord.Client):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- # create the background task and run it in the background
- self.bg_task = self.loop.create_task(self.my_background_task())
+ # an attribute we can access from our task
+ self.counter = 0
+
+ # start the task to run in the background
+ self.my_background_task.start()
async def on_ready(self):
print('Logged in as')
@@ -14,14 +18,15 @@ class MyClient(discord.Client):
print(self.user.id)
print('------')
+ @my_background_task.before_loop
+ async def before_my_task(self):
+ await self.wait_until_ready() # wait until the bot logs in
+
+ @tasks.loop(seconds=60) # task runs every 60 seconds
async def my_background_task(self):
- await self.wait_until_ready()
- counter = 0
channel = self.get_channel(1234567) # channel ID goes here
- while not self.is_closed():
- counter += 1
- await channel.send(counter)
- await asyncio.sleep(60) # task runs every 60 seconds
+ self.counter += 1
+ await channel.send(counter)
client = MyClient()