【发布时间】:2015-07-08 22:15:59
【问题描述】:
我有一个 Twisted 客户端/服务器应用程序,其中客户端要求多个服务器使用 AMP 完成额外的工作。第一个响应客户端的服务器获胜——其他未完成的客户端请求应该被取消。
Deferred 对象支持cancel(),并且可以将取消函数传递给Deferred 的构造函数。但是,AMP 的sendRemote() api 不支持传递取消函数。此外,我希望取消函数不仅在完成后停止处理本地请求,而且还从远程服务器删除请求。
AMP 的 BoxDispatcher 确实有一个 stopReceivingBoxes 方法,但这会导致所有延迟都出错(不是我想要的)。
有没有办法取消 AMP 请求?
【问题讨论】:
标签: python twisted deferred asynchronous-messaging-protocol