/*
 * Copyright (c) 2011-2016 The original author or authors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 *      The Eclipse Public License is available at
 *      http://www.eclipse.org/legal/epl-v10.html
 *
 *      The Apache License v2.0 is available at
 *      http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 */

package examples.hystrix;

import com.netflix.hystrix.HystrixCommand;
import io.vertx.core.Context;
import io.vertx.core.Vertx;

Examples for Hystrix
Author:Clement Escoffier
/** * Examples for Hystrix * * @author <a href="http://escoffier.me">Clement Escoffier</a> */
public class HystrixExamples { public void exampleHystrix1() { HystrixCommand<String> someCommand = getSomeCommandInstance(); String result = someCommand.execute(); } public void exampleHystrix2(Vertx vertx) { HystrixCommand<String> someCommand = getSomeCommandInstance(); vertx.<String>executeBlocking( future -> future.complete(someCommand.execute()), ar -> { // back on the event loop String result = ar.result(); } ); } public void exampleHystrix3(Vertx vertx) { vertx.runOnContext(v -> { Context context = vertx.getOrCreateContext(); HystrixCommand<String> command = getSomeCommandInstance(); command.observe().subscribe(result -> { context.runOnContext(v2 -> { // Back on context (event loop or worker) String r = result; }); }); }); } private HystrixCommand<String> getSomeCommandInstance() { return null; } }