from discord.ext import tasks
@tasks.loop(seconds=60) # асинхронная подпрограмма будет вызываться каждые 60 секунд
# она НЕ ДОЛЖНА выполнять длительных действий, так как на это время бот блокируется!
async def my_background_task(self):
#в этом пример бо тпросто пишет в канал увеличивающийся счётчик
channel = self.get_channel(1234567) # channel ID goes here
self.counter += 1
await channel.send(self.counter)
@my_background_task.before_loop # а так можно выполнить подпрограмму ДО начала циклической задачи
#обрати внимание на имя декоратора: my_background_task, как у функции выше
async def before_my_task(self):
await self.wait_until_ready() # начнём счёт, когда бот залогинится.
nfds This argument should be set to the highest-numbered file
descriptor in any of the three sets, plus 1. The
indicated file descriptors in each set are checked, up to
this limit (but see BUGS).
nfds
Ignored. The nfds parameter is included only for compatibility with Berkeley sockets.
sendto(ls[i], datagram, 4, 0, (struct sockaddr*)&addr, addrlen);
Находишь вот это. Дальше сам.