我正在使用discord.py rewrite编写一个discord机器人,我想每天在特定时间运行一个函数。我完全没有异步函数的经验,我不知道如何在不使用“等待”的情况下运行一个异步函数。这只是我的代码的一部分,这就是为什么可能未定义某些内容的原因。
async def send_channel():
try:
await active_channel.send('daily text here')
except Exception:
active_channel_id = None
active_channel = None
async def timer():
while True:
schedule.run_pending()
await asyncio.sleep(3)
schedule.every().day.at("21:57").do(await send_channel())
@bot.event
async def on_ready():
print("Logged in as")
print(bot.user.name)
print(bot.user.id)
print("------")
bot.loop.create_task(timer())
使用该schedule.every().day.at("00:00").do()函数时,输入await send_channel()以下参数会出现此错误.do():
self.job_func = functools.partial(job_func,* args,** kwargs)TypeError:第一个参数必须是可调用的
但是,当我不使用await并将其send_channel()
作为参数时,会出现此错误:
RuntimeWarning:从未等待协程'send_channel'
我不是很擅长编程,所以如果有人可以尝试为我愚弄它,那就太好了。
GCT1015
相关分类