Discord bot和多线程

问题描述 投票:0回答:1

我正在使用Rapptz library实现一个不和谐机器人,我面临着多线程的问题。这可能很容易,我肯定错过了一些东西!

我查看一个抽搐频道列表,看看它们是否已启动,如果其中一个是,我希望机器人在特定频道中发送消息。为此,我运行一个线程,每隔X秒轮询Twitch API,但我不能让机器人发送消息。我是异步编程的新手,所以这可能就是原因。

这里是我想做的简化示例

class MyThread(Thread):

def __init__(self, client):
    Thread.__init__(self)
    self.client = client

def run(self):
    while True:
        self.client.send_message(channel, "Sending message every 10 seconds!")
        time.sleep(10)

问题是我知道send_message方法是异步的但是:

  • 当我在await调用前放置send_message关键字时,我还需要将run方法定义为协程。当我尝试运行它时,我收到了消息。 RuntimeWarning: coroutine MyThread.run was never awaited
  • 当我没有把它,我没有得到错误,但仍然没有发送消息。

我认为事件循环有一个问题,但我完全迷失了。当我读到有关异步编程的文章时,它看起来很清楚,但我无法适应我的问题......

python python-3.x python-3.5 discord
1个回答
-1
投票

该函数需要以等待开始才能使用异步

© www.soinside.com 2019 - 2024. All rights reserved.