hystrix总结之多返回值命令
继承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总结之多返回值命令相关推荐
- bat获取命令返回值_全网都在找的redis字符串命令,总结在这了
概述 redis一般用来做缓存,可能很多朋友都没有深入去学习redis的相关命令,只是涉及到安装部署而已,所以今天主要总结介绍一下redis字符串的一些命令. SET 语法:SET key value ...
- python执行linux命令返回结果_Python中调用Linux命令并获取返回值
方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于she ...
- linux变量接收命令返回值,Linux Shell教程(一)
函数返回值 函数返回值,可以显式增加return语句:如果不加,会将最后一条命令运行结果作为返回值. 函数返回值在调用该函数后通过 $? 来获得. 范例1 来看一个带有return语句的函数: #!/ ...
- linux命令执行返回值(附错误对照表)
转自:http://blog.sina.com.cn/s/blog_6739945f0100zt4b.html 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结 ...
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值
原文:http://blog.csdn.net/ligaoyang/article/details/6755327 测试能拿返回值,但是在getErrorStream里, import java.io ...
- linux python脚本返回,在C/python中执行linux命令并得到返回值以及输出
一般来说,用shell的方便之处在于,能够直接调用linux系统命令,方便的得到结果. 但是shell scprit的约束重重(这里不再讲了).下面说一下在C和python中如何调用linux命令.得 ...
- c语言调用shell命令一 popen使用以及获取命令返回值
产品升级,新增网卡,原先的产品是arm平台,新网卡是mips平台,需要开发网卡的配置程序,该程序原计划是以守护进程的形式后台执行,不过测试过程中发现系统不是特别稳定,导致程序时不时奔溃下,一时半会儿无 ...
- Python中调用Linux命令并获取返回值
方法一.使用os模块的system方法: os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于sh ...
- Linux shell:shell 命令的返回值和输出
1. 返回值用$?来测试 如命令ls [baoliw@AONTFN07 vlan_transparent]$ lsconfig not_care_pbit.sh[baoliw@AONTFN07 vla ...
最新文章
- linux下grub的修复
- ADAMoracle预言机的发展趋势和特点
- numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践
- AAAI 2019 四个杰出论文奖论文揭晓
- 深度解析双十一背后的阿里云 Redis 服务
- xml文件操作小结(3)---selectsinglenode方法中的xpath%%%%转自酷网动力(www.ASPCOOL.COM)。...
- 7,7显示选中的目标信息
- 手动配置ubuntu无线网络
- linux 卸载ninja,Linux下数据库管理工具:DbNinja
- 测试技术培训:如何测试磁盘写的速度
- SVN更新无数次后仍显示Out of date
- async python两个_Python多线程一览
- [HEOI2015]定价 (贪心)
- scratch3 打幽灵游戏
- 阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
- Oracle number类型详解
- 如何以正确的顺序重新安装驱动程序
- 5g计算机云,uawei云电脑+5G:手机能当电脑用了
- opencv2读取摄像头并保存为视频
- 计算机网络基础知识总结及思维导图(一)概述
热门文章
- webservice 的datetime不能为null_用.net发布一个简单的webservice
- 虚幻4皮肤材质_虚幻4渲染编程(材质编辑器篇)【第六卷:各向异性材质amp;玻璃材质】...
- Mysql(7)——auto_increment简介
- 回文子串—leetcode647
- hh.exe反汇编chm
- C专家编程—使用unsigned int可能产生的Bug(1)
- CF-477C(Dreamoon and Strings) DP
- 2049 : 压死骆驼的最后一根稻草 (规律)
- Linux系统下各文件目录的含义 入门
- Linux下C++连MySQL数据库