gpt4 book ai didi

python - 应如何取消 Twisted AMP 延迟?

转载 作者:行者123 更新时间:2023-12-01 04:38:25 26 4
gpt4 key购买 nike

我有一个 Twisted 客户端/服务器应用程序,其中客户端请求多个服务器使用 AMP 完成额外工作。第一个响应客户端的服务器获胜——其他未完成的客户端请求应该被取消。

Deferred 对象支持 cancel() 并且取消函数可以传递给 Deferred 的构造函数。但是,AMP 的 sendRemote() API 不支持传递取消函数。此外,我希望取消函数不仅能够在完成后停止本地请求的处理,还能从远程服务器中删除该请求。

AMP 的 BoxDispatcher 确实有一个 stopReceivingBoxes 方法,但这会导致所有延迟错误(不完全是我想要的)。

有办法取消 AMP 请求吗?

最佳答案

没有。目前无法取消 AMP 请求。

您无法取消 AMP 请求,因为 AMP 中无法在线协议(protocol)级别定义任何方式来向远程服务器发送消息,告知其停止处理。对于 AMP 来说,这将是一个有趣的功能添加,但如果要添加它,您不会通过允许用户传递自己的取消器来添加它;相反,AMP 本身必须创建一个发送“取消”命令的取消函数。

最后,添加此功能必须非常小心,因为一旦发送请求,就不能保证它不会被完全处理;通常,当远程端接收并处理取消请求时,远程端已经完成处理并发送回复。所以AMP应该实现异步取消。

关于python - 应如何取消 Twisted AMP 延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com