如何 运行 多线程处理扭曲的缓冲数据?
How to run multiple threads on buffered data in twisted?
Image of an abstract model
我已经使用 python-socketIO 实现了这个模型,但是我无法在 twisted 中做类似的事情。我有一个数据输入,我以 8192 字节的块读取这个数据。这是二进制数据,因此需要在将其发送给客户端之前对其进行处理。但是我无法停止输入数据进行处理。在 python-socketIO 中,我曾经将函数作为后台任务处理此数据,同时继续获取更多数据。关于如何使用 python.
的扭曲库做类似的事情的任何想法
"background task" 我想你的意思是线程。您可以使用 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)
Image of an abstract model
我已经使用 python-socketIO 实现了这个模型,但是我无法在 twisted 中做类似的事情。我有一个数据输入,我以 8192 字节的块读取这个数据。这是二进制数据,因此需要在将其发送给客户端之前对其进行处理。但是我无法停止输入数据进行处理。在 python-socketIO 中,我曾经将函数作为后台任务处理此数据,同时继续获取更多数据。关于如何使用 python.
的扭曲库做类似的事情的任何想法"background task" 我想你的意思是线程。您可以使用 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)