python - 什么时候应该将协议(protocol)处理代码拆分为 Twisted 中的 Deferreds?

标签 python twisted

在 Twisted 中实现客户端协议(protocol),我当前的代码在收到的每个协议(protocol)单元上做了很多工作,它不使用 I/O,因此当前没有使用 Deferred。 处理并不意味着密集,但它向可插拔接口(interface)开放。

进行此分区是否有阈值?

最佳答案

您可能会考虑在要调用插件的地方“推迟”,因为您无法预测它们是否会对数据库、远程进程、Web 服务等执行任何 I/O。

考虑使用@inlineCallbacks ,这将简化您的生活,只需使用 Python 的 yield 语句即可将处理分解为 Deferreds。然后,您可以尝试以各种方式分解计算密集型工作,也许可以为其他协议(protocol)处理程序提供运行和完成的机会,特别是当某些处理程序是计算密集型而其他处理程序不是时。

关于python - 什么时候应该将协议(protocol)处理代码拆分为 Twisted 中的 Deferreds?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14359730/

相关文章:

python - 运行 .detector (openCV) 时内核死机

python - 启动 Twisted Reactor 时的 CPU 使用率

python - Python Twisted 的数据库

python - sql建表及数据精度

python - 如何用 turtle 模块画圆和六边形?

python - 字典仅打印并保存最后一项

python - Django 问题 : Django ManagementForm data is missing or has been tampered with

python - 扭曲应用程序的 Web 界面

python - 扭曲的未处理错误

python - 自定义Python Twisted协议(protocol): good practices and complexity?