继承HystrixCommand实现run方法的命令只能返回单一值,Hystrix也提供了方式可以让我返回一个Observable结果,然后持续监听运行结果。

继承HystrixObservableCommand

public class HelloWorldHystrixObservableCommand extends HystrixObservableCommand{private String name;protected HelloWorldHystrixObservableCommand(String group) {super(HystrixCommandGroupKey.Factory.asKey(group));this.name = group;}@Overrideprotected Observable resumeWithFallback() {return Observable.create(new Observable.OnSubscribe<String>() {public void call(Subscriber<? super String> observer) {observer.onNext("fallback:"+name);}});}protected Observable construct() {return Observable.create(new Observable.OnSubscribe<String>() {public void call(Subscriber<? super String> observer) {observer.onNext("hello world:"+name);observer.onCompleted();}});}
}

construct为需要执行的命令并返回一个Observable对象,如果执行过程中发生异常,则会触发resumeWithFallback来降级。

有两种方法执行命令:

Observable<String> s = new HelloWorldHystrixObservableCommand("Bob").observe();
Observable<String> s = new HelloWorldHystrixObservableCommand("Bob").toObserve();

  执行原理与HystrixCommand相同,继承了相同的虚拟类(AbstractCommand)只是最终调用的执行方法不同。

  HystrixObservableCommand默认使用SEMAPHORE模式执行。

转载于:https://www.cnblogs.com/zhangwanhua/p/8257468.html

hystrix总结之多返回值命令相关推荐

  1. bat获取命令返回值_全网都在找的redis字符串命令,总结在这了

    概述 redis一般用来做缓存,可能很多朋友都没有深入去学习redis的相关命令,只是涉及到安装部署而已,所以今天主要总结介绍一下redis字符串的一些命令. SET 语法:SET key value ...

  2. python执行linux命令返回结果_Python中调用Linux命令并获取返回值

    方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于she ...

  3. linux变量接收命令返回值,Linux Shell教程(一)

    函数返回值 函数返回值,可以显式增加return语句:如果不加,会将最后一条命令运行结果作为返回值. 函数返回值在调用该函数后通过 $? 来获得. 范例1 来看一个带有return语句的函数: #!/ ...

  4. linux命令执行返回值(附错误对照表)

    转自:http://blog.sina.com.cn/s/blog_6739945f0100zt4b.html 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结 ...

  5. java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值

    原文:http://blog.csdn.net/ligaoyang/article/details/6755327 测试能拿返回值,但是在getErrorStream里, import java.io ...

  6. linux python脚本返回,在C/python中执行linux命令并得到返回值以及输出

    一般来说,用shell的方便之处在于,能够直接调用linux系统命令,方便的得到结果. 但是shell scprit的约束重重(这里不再讲了).下面说一下在C和python中如何调用linux命令.得 ...

  7. c语言调用shell命令一 popen使用以及获取命令返回值

    产品升级,新增网卡,原先的产品是arm平台,新网卡是mips平台,需要开发网卡的配置程序,该程序原计划是以守护进程的形式后台执行,不过测试过程中发现系统不是特别稳定,导致程序时不时奔溃下,一时半会儿无 ...

  8. Python中调用Linux命令并获取返回值

    方法一.使用os模块的system方法: os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于sh ...

  9. Linux shell:shell 命令的返回值和输出

    1. 返回值用$?来测试 如命令ls [baoliw@AONTFN07 vlan_transparent]$ lsconfig not_care_pbit.sh[baoliw@AONTFN07 vla ...

最新文章

  1. linux下grub的修复
  2. ADAMoracle预言机的发展趋势和特点
  3. numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践
  4. AAAI 2019 四个杰出论文奖论文揭晓
  5. 深度解析双十一背后的阿里云 Redis 服务
  6. xml文件操作小结(3)---selectsinglenode方法中的xpath%%%%转自酷网动力(www.ASPCOOL.COM)。...
  7. 7,7显示选中的目标信息
  8. 手动配置ubuntu无线网络
  9. linux 卸载ninja,Linux下数据库管理工具:DbNinja
  10. 测试技术培训:如何测试磁盘写的速度
  11. SVN更新无数次后仍显示Out of date
  12. async python两个_Python多线程一览
  13. [HEOI2015]定价 (贪心)
  14. scratch3 打幽灵游戏
  15. 阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
  16. Oracle number类型详解
  17. 如何以正确的顺序重新安装驱动程序
  18. 5g计算机云,uawei云电脑+5G:手机能当电脑用了
  19. opencv2读取摄像头并保存为视频
  20. 计算机网络基础知识总结及思维导图(一)概述

热门文章

  1. webservice 的datetime不能为null_用.net发布一个简单的webservice
  2. 虚幻4皮肤材质_虚幻4渲染编程(材质编辑器篇)【第六卷:各向异性材质amp;玻璃材质】...
  3. Mysql(7)——auto_increment简介
  4. 回文子串—leetcode647
  5. hh.exe反汇编chm
  6. C专家编程—使用unsigned int可能产生的Bug(1)
  7. CF-477C(Dreamoon and Strings) DP
  8. 2049 : 压死骆驼的最后一根稻草 (规律)
  9. Linux系统下各文件目录的含义 入门
  10. Linux下C++连MySQL数据库