首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在反应式编程中使用主动超时的好处

在反应式编程中使用主动超时的好处
EN

Stack Overflow用户
提问于 2017-09-05 21:49:53
回答 1查看 124关注 0票数 0

在阻塞环境中,强烈建议设置激进的超时,以便快速失败并释放底层资源(https://pragprog.com/book/mnee/release-it的5.1节)。

在异步/非阻塞环境中,请求不会阻塞主线程,资源可以立即用于进一步处理。超时仍然是必要的,但是设置激进的值仍然有意义吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-07 21:44:48

在实时软件中,与日常软件操作相比,网络请求或机器上的控制操作需要大量时间。例如,告诉步进电机前进到特定位置可能需要几秒钟,而正常操作可能需要几毫秒。比方说,一个典型的步进马达前进需要n毫秒,而走最远的一个需要m毫秒。

激进的超时将计算n并添加一个小的模糊因子,可能是10%,如果在这段时间内没有达到目标,那么很快就会失败。正如您所说的,积极的超时将允许您释放资源。mepsilon的非侵略性超时将失败得更慢,并不必要地占用资源。

在异步软件世界中,在成功和失败之间有许多其他选择。异步操作还可以计算n加10%,并设置进度条(如果需要用户反馈),然后显示接近估计目标的进度。当到达超时时,进度条将满,但您可能会使其出现脉冲或更改颜色,以指示花费的时间比预期的要长。如果步进电机在m毫秒后仍未达到目标,则可以宣布出现故障。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46056683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档