【问题标题】:How to run multiple threads on buffered data in twisted?如何在扭曲的缓冲数据上运行多个线程?
【发布时间】:2017-08-24 06:09:16
【问题描述】:

Image of an abstract model

我已经使用 python-socketIO 实现了这个模型,但是我无法在扭曲中做类似的事情。我有一个数据输入,我以 8192 字节的块读取这些数据。这是二进制数据,因此需要在将其发送给客户端之前对其进行处理。但是我无法停止输入数据进行处理。在 python-socketIO 中,我曾经将该函数作为后台任务处理此数据,同时我继续获取更多数据。任何想法我可以如何使用扭曲的 python 库做类似的事情。

【问题讨论】:

    标签: python-2.7 websocket twisted


    【解决方案1】:

    “后台任务”我想你的意思是一个线程。您可以使用 Twisted 处理线程。涉及概念最少的最多方法是deferToThread

    from twisted.internet.protocol import Protocol
    from twisted.internet.threads import deferToThread
    
    class YourProtocol(Protocol):
        def dataReceived(self, data):
            d = deferToThread(your_process_data, data)
            d.addCallback(your_result_handler)
            d.addErrback(your_error_handler)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多