Hystrix 忽略运行超时

2024-02-21

我正在尝试使用 Hystrix。

我理解文档,即使通过“运行”同步调用 Hystrix 命令也会默认在线程中运行,并且应该受到 Hystrix 中配置的超时的影响。但当我尝试时,似乎没有发生超时。

我是否误解了文档?或者我做错了什么?有没有办法通过同步调用获得超时行为?

更具体地说:我有一个“SimpleService”,需要 5 秒才能返回。这是包含在超时为 500 毫秒的 Hystrix 命令中的:

public class WebRequestCommand extends HystrixCommand<String> {
    private final SimpleService baneService;

    protected WebRequestCommand(SimpleService baneService) {

        super(
                Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("test"))
                        .andCommandPropertiesDefaults(
                                HystrixCommandProperties.Setter()
                                        .withExecutionIsolationThreadTimeoutInMilliseconds(500)));
        this.baneService = baneService;
    }

    @Override
    protected String run() {
        return baneService.connectToBane();

    }

    @Override
    protected String getFallback() {
       return "SERVICE NOT AVAILABLE";
    }
}

如果我这样称呼它:

WebRequestCommand webService = new WebRequestCommand(baneService);
result = webService.run();

我在 5 秒后得到结果 => 没有超时

如果我这样称呼它:

WebRequestCommand webService = new WebRequestCommand(baneService);
result = webService.queue().get();

Hystrix 超时发生在 500 毫秒后并返回回退。


我认为你应该以同步方式调用execute()而不是run()。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hystrix 忽略运行超时 的相关文章

随机推荐

  • 调整大小时出现黑色边框

    我开始了我的WPF学习之旅 经过几天的编码 我发现每当我调整任何 WPF 表单的大小时 调整大小时底部和右侧都会出现黑色边框 就像一个伪影 就好像屏幕太慢一样 在使用 winform 时我从未注意到这一点 就像这样 这是一个已知问题吗 有什
  • VSCode的默认设置文件的位置在哪里?

    在 Windows 计算机上 VS Code 用户设置文件位于 AppData Code User settings json 当我们从上述位置打开用户设置文件或转到左侧窗格中时 包含默认设置的文件的位置是什么 文件 gt 首选项 gt 设
  • Scada-Lts - “未指定数据源”错误

    我尝试使用 jdk 1 7 在 Tomcat 7 上运行 Scada Lts 但出现以下错误 SEVERE Exception sending context initialized event to listener instance o
  • 如何使用 Process.Start("outlook.exe") 运行 Outlook 并重新获得控制权

    我的 C 程序需要启动 Office Outlook 并获取当前的 正在运行的 Outlook 应用程序 为了做到这一点 我实现了以下简单的程序 所以如果你愿意 你可以简单地测试它 using Outlook Microsoft Offic
  • .NET 的状态机框架

    我工作中的系统基本上是一个消息驱动的状态机 它接收各种类型的消息 根据消息查找某些上下文 状态 然后根据消息和当前状态决定要做什么 通常结果是一条消息被发送到系统之外 有没有好的开源框架可以在 NET 中实现状态机 我研究了最新版本的 Wi
  • Oracle sql MERGE INTO 带有单个 where 子句

    我有以下 SQL 代码 这是我到目前为止所得到的 MERGE INTO SCHEMA1 TABLE 1 table1 USING SELECT DISTINCT table2 column1 view1 column2 FROM SCHEM
  • 如何在 PHP 中使用 RegexIterator

    我还没有找到如何使用 php RegexIterator 递归遍历目录的好例子 最终结果是我想指定一个目录并查找其中具有某些给定扩展名的所有文件 例如只说 html php 扩展 此外 我想过滤掉 Trash 0 Trash 500 等类型
  • 可以禁用@media查询或强制解决吗?原因:允许 iPhone 查看桌面网站吗?

    我通过 media 查询对我的网站进行了大幅修改 以在手机上显示得非常精简 但是 我的用户要求提供该网站的桌面版本 可通过链接获取 更进一步 桌面站点本身也会根据分辨率被 media 查询修改 我正在考虑选择一种 桌面 分辨率 例如 144
  • 未选取环回 4 测试配置

    我跟着Loopback4 数据源 https loopback io doc en lb4 DataSources html文档并放置样本 数据源 json and 样本 测试 数据源 json文件下src 数据源 每当我跑步时npm ru
  • Java CGI 与 Servlet [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Tweepy 错误代码 400

    我正在尝试下载一些推文用于研究目的 直到几天前 代码都运行得很好 错误信息 gt Traceback most recent call last gt gt File
  • 编译时如何使用通配符包含 JAR 文件?

    我在 java 文件 MyRtmpClient java 中有以下内容 import org apache mina common ByteBuffer and ByteBuffer位于 JAR 文件内 当然具有正确的目录结构 该 jar
  • JQuery Ajax post 参数有时不会在 IE 上发送

    我遇到的问题是 当我使用 jquery ajax post 时 频率非常低 当我将呼叫从 post 类型切换为 get 类型时 问题就消失了 有没有其他人在 IE 上见过这种奇怪的行为 谢谢 我已经在各种 ajax 调用中看到过这种情况 但
  • 使用 Azure Function 删除 CosmosDB 条目

    我一直在寻找一种技术 通过浏览器内的代码编辑器 使用 Azure Functions 删除 Cosmos 数据库中的项目 我不想在 VS 上使用本地开发的代码有多种原因 我正在使用的代码可用here https pastebin com X
  • 向 ASP.NET Web API 控制器添加显式操作路由

    我有一个 ASP NET Web API 项目ApiController提供了一个User端点具有以下操作 GET api User POST api User DELETE api user 我想提供以下端点 GET api user m
  • 单元测试与验收测试

    你支持其中之一吗 或两者 我的理解是单元测试 从开发人员的角度验证系统 帮助开发者实践TDD 保持代码模块化 协助检测低粒度的错误 验收测试 从业务和 QC QA 角度验证系统 往往是高级别的 因为它们通常是由不熟悉代码内部工作原理的人编写
  • WebRTC - 禁用所有音频处理

    我目前正在尝试通过 webrtc 获得尽可能干净的音频通道 通过 getUserMedia mediaconstraints 对象 我设置了以下选项 constraints audio mandatory echoCancellation
  • git pre-receive hook - 获取最新代码

    我正在尝试写一个pre receive hook对于 git 来说 它将拉取正在推送的最新版本的代码并对其运行单元测试 我的代码如下 但是当它到达 git checkout newrev 时 我得到 远程 致命 引用不是树 188de39c
  • 球体/地球仪上的点与多边形之间的最短大圆距离

    我有一组由地理 WGS84 坐标指定的多边形 它们位于球体上 我有一个由纬度 经度对指定的点 我想 有效地 找到点和多边形之间的最小大圆距离 我当前的堆栈包括 fiona shapely gdal 和 proj StackOverflow
  • Hystrix 忽略运行超时

    我正在尝试使用 Hystrix 我理解文档 即使通过 运行 同步调用 Hystrix 命令也会默认在线程中运行 并且应该受到 Hystrix 中配置的超时的影响 但当我尝试时 似乎没有发生超时 我是否误解了文档 或者我做错了什么 有没有办法