Я использую Hystrix для улучшения своих услуг.Как я могу декапсулировать вызовы сервисов в Hystrix.Я знаю, что вы можете создать для каждого вызова специальный Hystrix-класс, но это было бы слишком много работы без использования Spring!
Я пытаюсь описать мою проблему с псевдокодом:
public class HystrixController extends HystrixCommand {
public static void main(String[] args) throws Exception {
HystrixController hystrixController = new HystrixController();
System.out.print(hystrixController.execute());
}
private final ExampleService exampleService;
protected HystrixController() throws Exception {
super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
this.exampleService = new ExampleService();
}
// Call 1
public List getItemsAsList() {
return exampleService.getItemsByContractId(contractID);
}
// Call 2
public List getItemsByName() {
return exampleService.getItemsByName(contractID);
}
// How can I isolate the two calls ? The run() only allows me to use one.
@Override
protected List run() throws Exception {
return getItemsAsList();
}
}
ВВ примере, который вы видите, можно выполнить только один вызов.Я хотел бы иметь что-то вроде этого:
public class HystrixController extends HystrixCommand {
public static void main(String[] args) throws Exception {
HystrixController hystrixController = new HystrixController();
System.out.print(hystrixController.execute(1));
System.out.print(hystrixController.execute(2));
}
private final ExampleService exampleService;
protected HystrixController() throws Exception {
super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
this.exampleService = new ExampleService();
}
// Call 1
public List getItemsAsList() {
return exampleService.getItemsByContractId(contractID);
}
// Call 2
public List getItemsByName() {
return exampleService.getItemsByName(contractID);
}
// Multi Threads
@Override
protected List run_getItemsAsList() throws Exception {
return getItemsAsList();
}
@Override
protected List run_getItemsByName() throws Exception {
return getItemsByName();
}
}
Заранее спасибо, и я прошу прощения за мой сломанный английский