查询异步web服务的速率?

2024-05-29 05:38:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python中的requests包来查询正在为我执行某些处理的异步web服务。如何确定处理状态检查之间的最佳等待间隔?对于一些典型的处理请求,是否需要生成典型等待时间的分布?如果生成这样一个数据集,它会有用吗

编辑:

正如您可能从这个documentation中看到的,似乎没有关于此服务的回调选项可以让我知道处理已完成

以下是显示初始请求和处理完成之间等待时间(秒)分布的柱状图:

enter image description here


Tags: 数据web编辑间隔状态documentation选项requests
1条回答
网友
1楼 · 发布于 2024-05-29 05:38:26

一般来说,异步操作应该提供一些它们已经完成的信号,因此不必轮询它们。检查文档,查看请求完成后是否可以调用回调函数

如果您别无选择,只能进行轮询,那么目标是最大限度地减少接受响应时的延迟,同时不通过过度轮询过度加载服务。适当的比率将取决于为实际请求提供服务的相对成本与为轮询提供服务的相对成本

响应时间主要取决于排队的其他请求数量的服务,其响应时间往往遵循泊松分布,但也可以采用其他分布

在大多数情况下,在接近平均响应时间之前,即使开始投票也没有什么意义

这些可能有用:

  • 记录最近查询的时间,用于估计未来的请求(包括泊松分布在内的各种分布的平均值、STDEV和“适合度”)
  • 使用与预期分布相匹配的退避策略;这通常意味着指数级的退让。加倍很容易计算,但有点粗糙;中位数(Φ=(1)+√5) /2)是一个很好的通用比率,但您可能能够为您的特定应用程序做得更好
  • 过期查询导致的可接受失败率是多少
  • 底层系统是否有一种合理的方法来取消进行中的查询,还是它们只是继续在服务器上运行,占用资源?)

相关问题 更多 >

    热门问题