在 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/