繁体   English   中英

用python扭曲发送大量消息

[英]Send large number of messages in python twisted

我有一个扭曲的TCPServer,它具有大量的客户端连接。 我需要能够使一个主客户端向该服务器发出命令,以非阻塞方式向所有其他客户端连接发送消息。 换句话说,服务器应该有一个命令处理程序(建立在lineReceived之上),该命令处理程序从主客户端接收特殊命令,然后启动线程或进程以遍历所有其他客户端,并向每个客户端发送命令(sendLine)这些客户中。 主线程的命令处理程序应在启动线程后立即返回。 问题在于,必须从主反应堆线程中调用任何扭曲的sendLine调用,因此必须使用callFromThread完成。 因此,我的主命令处理程序可能会执行以下操作:

def handle_master_command(self,command):
    deferred=reactor.deferToThread(myfunc)
    return

def myfunc(self):
    for client in other_clients:
        reactor.callFromThread(send_stuff_to_client,client,stuff_to_send)

显然,这只是伪代码,但是这样的工作可行吗?

LineReceiver.sendLine()LineReceiver.sendLine()已经是非阻塞的; 您不需要任何线程,只需执行以下操作:

def handle_master_command(self, command):
    for client in other_clients:
        send_stuff_to_client(client, stuff_to_send)

如果有任何扭曲的api表示“必须从反应堆线程中调用它”,则始终意味着它将是非阻塞的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM