簡體   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