我有一个 Twisted 客户端/服务器应用程序,其中客户端要求多个服务器使用 AMP 完成额外的工作。第一个响应客户端的服务器获胜——其他未完成的客户端请求应该被取消。
Deferred
对象支持cancel()
和取消函数可以传递给Deferred
的构造函数。但是,AMP 的sendRemote()
api 不支持传递取消函数。此外,我希望取消函数不仅在完成后停止处理本地请求,而且还从远程服务器中删除请求。
AMPBoxDispatcher
确实有一个stopReceivingBoxes
方法,但这会导致所有延迟出错(不是我想要的)。
有没有办法取消 AMP 请求?