如何在扭曲中对缓冲数据运行多个线程?



抽象模型的图像

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

通过"后台任务",我想你的意思是一个线程。 您可以使用扭曲来处理螺纹。 涉及的概念最少的大多数方法是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)

最新更新