与反应性编程一起使用激进的超时的好处



在封锁世界中,强烈建议设置积极的超时以使其快速失败并发布基础资源(https://pragprog.com/book/mnee/释放)。

在异步/非阻滞世界中,请求不会阻止主线程,并且可以立即提供资源以进行进一步处理。超时仍然是必要的,但是设置积极价值仍然有意义?

在实时软件中,与日常软件操作相比,机械上的网络请求或控制操作需要大量时间。例如,告诉阶梯电机前进到特定位置可能需要几秒钟,而正常操作可能需要毫秒。假设典型的步进电动机提前需要n毫秒,而最大距离的距离为m毫秒。

积极进取的超时将计算n并增加一个小的软糖因子,也许是10%,如果在那个时候未达到目标,则很快就会失败。如您所述,积极的超时将使您发布资源。m加上epsilon的无侵略性超时会慢得多,并且不必要地绑住资源。

在异步软件世界中,成功与失败之间还有许多其他选择。异步操作还可以计算n加10%,并设置进度栏(如果需要用户反馈),然后显示朝着估计目标结束的进度。到达超时时,进度栏将满足,但是您可能会导致其脉冲或更改颜色,以表明其花费的时间比预期的时间更长。如果在m毫秒后仍未达到其目标,那么您可以宣布失败。

在其他情况下,当反馈不重要时,您当然可以使用mepsilon作为超时。

相关内容

  • 没有找到相关文章

最新更新