道歉如果标题不清楚,我就不能用如此短的句子解释我的问题。
我刚刚开始使用hystrix-javanica,我在有一个外部网络电话断路器的地方工作。
我还有另一种情况需要报道,但我不太确定最佳方法。
我有一个预订服务,每个客户端请求在内部进行5个连续的外部网络呼叫,每个后续的呼叫取决于之前的。 例如,如果所有客户端请求在最后的第5次外部网络呼叫中失败,我希望能够断开电路(在某处)并停止任何命令击中5个外部网络呼叫中的任何一个,基本上关闭预订服务一段时间。
您如何看待这项实施?
感谢。
答案 0 :(得分:0)
以下是来自HystrixDemo的示例,可能有所帮助。
public void executeSimulatedUserRequestForOrderConfirmationAndCreditCardPayment() throws InterruptedException, ExecutionException {
/* fetch user object with http cookies */
UserAccount user = new GetUserAccountCommand(new HttpCookie("mockKey", "mockValueFromHttpRequest")).execute();
/* fetch the payment information (asynchronously) for the user so the credit card payment can proceed */
Future<PaymentInformation> paymentInformation = new GetPaymentInformationCommand(user).queue();
/* fetch the order we're processing for the user */
int orderIdFromRequestArgument = 13579;
Order previouslySavedOrder = new GetOrderCommand(orderIdFromRequestArgument).execute();
CreditCardCommand credit = new CreditCardCommand(previouslySavedOrder, paymentInformation.get(), new BigDecimal(123.45));
credit.execute();
}
此方法有五个命令,其中一些命令相互依赖,但如果其中任何一个命令失败,则该方法将以异常退出。
我希望这会有所帮助。