如何在龙卷风IO循环中运行芹菜工人?
我有一个Tornado Websocket服务器,它保持与多个Websocket(移动设备)的开放连接。现在有一个包含所有消息的队列,它需要发送到所有连接的WebSocket。所以我试图编写这个程序,它使用队列中的消息并将它们发送到所有打开的连接。以下是我目前的代码:如何在龙卷风IO循环中运行芹菜工人?,io,celery,tornado,Io,Celery,Tornado,我有一个Tornado Websocket服务器,它保持与多个Websocket(移动设备)的开放连接。现在有一个包含所有消息的队列,它需要发送到所有连接的WebSocket。所以我试图编写这个程序,它使用队列中的消息并将它们发送到所有打开的连接。以下是我目前的代码: open_websocket_connections = [] class GetDataSocketHandler(tornado.websocket.WebSocketHandler): def check_ori
open_websocket_connections = []
class GetDataSocketHandler(tornado.websocket.WebSocketHandler):
def check_origin(self, origin):
return True
def open(self):
open_websocket_connections.appped(self)
logging.info('connection opened')
def on_close(self):
open_websocket_connections.remove(self)
logging.info('connection closed')
def on_message(message, *args, **kwargs):
for connection in open_websocket_connections:
connection.write_message(message)
# missing celery code part
def consume_messages(queue, *args, **kwargs):
# connect to `queue`
# call `on_message`
# missing ioloop code
# run the `consume_messages` in an ioloop
那么我该如何完成缺失的部分呢?可能是@Louis的复制品,我不认为是。我看到的这个问题和唯一的答案都没有提到用龙卷风来运行芹菜工人
IOLoop
@russoue答案确实解决了你的问题。它确实提到了使用龙卷风芹菜的可能性,这确实带来了好处。@Louistornado芹菜
处理它的生产者方面,而不是工人方面。如果我错了,请纠正我。@russoue-Hmm。。。我认为你是对的,它在工人方面没有任何作用。撤回接近票。可能是@Louis的复制品,我不认为是。我看到的这个问题和唯一的答案都没有提到用龙卷风来运行芹菜工人IOLoop
@russoue答案确实解决了你的问题。它确实提到了使用龙卷风芹菜的可能性,这确实带来了好处。@Louistornado芹菜
处理它的生产者方面,而不是工人方面。如果我错了,请纠正我。@russoue-Hmm。。。我认为你是对的,它在工人方面没有任何作用。撤回接近投票。