&引用;。。。从来没有被期待过”;错误(Discord Bot、Python)

&引用;。。。从来没有被期待过”;错误(Discord Bot、Python),python,async-await,discord,discord.py,Python,Async Await,Discord,Discord.py,因此我得到了一个错误“coroutine‘job’从来没有被等待过。”\u run‘u job(job)”,但无论我在哪里添加它,我总是会得到“object function不能用在‘wait’表达式中”有人能告诉我我做错了什么或者我必须把它放在哪里吗?据我所知,“schedule”模块不支持异步任务。您可以尝试使用,它是dbader存储库的分支。工作方式相同,仅适用于async函数 另一个选项已内置在discord API中,使用 来自discord.ext导入任务 ... @客户端事件 _r

因此我得到了一个错误“coroutine‘job’从来没有被等待过。”\u run‘u job(job)”,但无论我在哪里添加它,我总是会得到“object function不能用在‘wait’表达式中”有人能告诉我我做错了什么或者我必须把它放在哪里吗?

据我所知,“schedule”模块不支持异步任务。您可以尝试使用,它是dbader存储库的分支。工作方式相同,仅适用于
async
函数

另一个选项已内置在discord API中,使用

来自discord.ext导入任务
...
@客户端事件
_ready()上的异步定义:
打印('我们已以{0.user}的身份登录。格式(客户端))
job.start()#在机器人启动时启动循环
@task.loop(秒=5)
异步定义作业():
打印(“我正在工作…”)
通道=客户端。获取通道(651895929426673704)
等待频道。发送('你好')
#您还可以添加启动和停止任务循环的命令
@client.command()
异步def作业启动(ctx):
job.start()
@client.command()
异步def作业停止(ctx):
job.stop()
使用
aioschedule

将AIOSSchedule导入为计划
...
@客户端事件
_ready()上的异步定义:
打印('我们已以{0.user}的身份登录。格式(客户端))
工作安排在每天晚上8点
尽管如此:
等待计划。运行挂起()
等待asyncio.sleep(1)
异步定义作业():
打印(“我正在工作…”)
通道=客户端。获取通道(通道id)
等待频道。发送('你好')

可能是这样的:

async def on_ready():
  print('We have logged in as {0.user}'.format(client))
  schedule.every(5).seconds.do(job)
  while True:
    schedule.run_pending()
    time.sleep(1)
    
      
async def job():
  print("I'm working...")
  channel = client.get_channel(651895929426673704)
  await channel.send('hello')

它看起来不像
计划
是异步的library@Grismar不,这是因为不要使用
时间。睡眠
这将停止你的整个代码。使用
wait asyncio.sleep(1)
仅休眠该函数。另外,看看@LordofDarkness,如果不指定任何时区,它将使用本地时间。确保使用24小时时间,而不是12小时时间。我刚刚测试过,效果很好。编辑我的答案以显示
schedule.every().day.at(“time”).do(job)
import asyncio
async def on_ready():
  print('We have logged in as {0.user}'.format(client))
  schedule.every(5).seconds.do(job)
  while True:
    schedule.run_pending()
    time.sleep(1)
    
      
async def job2():
  print("I'm working...")
  channel = client.get_channel(651895929426673704)
  await channel.send('hello')
def job():
    asyncio.gather(job)