hystrix总结之多返回值命令
生活随笔
收集整理的這篇文章主要介紹了
hystrix总结之多返回值命令
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
繼承HystrixCommand實現(xiàn)run方法的命令只能返回單一值,Hystrix也提供了方式可以讓我返回一個Observable結(jié)果,然后持續(xù)監(jiān)聽運行結(jié)果。
繼承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為需要執(zhí)行的命令并返回一個Observable對象,如果執(zhí)行過程中發(fā)生異常,則會觸發(fā)resumeWithFallback來降級。
有兩種方法執(zhí)行命令:
Observable<String> s = new HelloWorldHystrixObservableCommand("Bob").observe(); Observable<String> s = new HelloWorldHystrixObservableCommand("Bob").toObserve();執(zhí)行原理與HystrixCommand相同,繼承了相同的虛擬類(AbstractCommand)只是最終調(diào)用的執(zhí)行方法不同。
HystrixObservableCommand默認(rèn)使用SEMAPHORE模式執(zhí)行。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangwanhua/p/8257468.html
總結(jié)
以上是生活随笔為你收集整理的hystrix总结之多返回值命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NET快速信息化系统开发框架 V3.2
- 下一篇: JAVA单例模式:懒汉式,饿汉式