我有一个接收电报消息的程序(使用模块pytg)。我希望它的生成器函数接收消息,在后台运行,只需将它收到的任何消息附加到列表中。这个想法是程序可以做自己的事情,并且不会因等待消息而停止。它只是在认为适当的时候检查收到的消息列表。
那么,如何设置此生成器在后台运行,以便它不会停止程序等待消息?
import pytg
import pytg.utils
import pytg.receiver
messages_received = []
@pytg.utils.coroutine
def receiver_function(tg_receiver):
while True:
message = (yield)
messages_received.append(message)
print("message received and added to list of messages received")
tg_receiver = pytg.receiver.Receiver()
tg_receiver.start()
tg_receiver.message(receiver_function(tg_receiver))
receiver.stop()
答案 0 :(得分:0)
这似乎是python的threading模块的工作。您可以生成一些工作线程以在后台运行并侦听电报消息。您应该创建一个线程管理器来创建工作者,并且可以将对消息列表的引用传递给工作者。这可能会变得棘手,因为看起来你需要一个线程之间的共享对象。