我在public方法中调用了两个用@HystrixCommand标记的私有方法。但是Hystrix断路器无法正常工作。 如果我将@HystrixCommand移动到公共父方法它可以工作,但我不希望它在顶部。
public PersonResponseModel getPerson(String nino,int id)
{
//person data from database
Person person=fetchPerson(nino);
PersonResponseModel personResponseModel=personMapper.personToPersonResponse(person);
//Get org data from extenal resource
OrganizationDTO organizationDTO=getOrganizationData(id);
}
@HystrixCommand
private OrganizationDTO getOrganizationData(int OrganizationId)
{
randomlyRunLong(); // Testing
ResponseEntity<OrganizationDTO> reponse= organizationClient.getOrganization(OrganizationId);
OrganizationDTO organizationDTO=reponse.getBody();
return organizationDTO;
}
@HystrixCommand
private Person fetchPerson(String nino)
{
return personRepository.findByNino(nino);
}
这是一个非常普遍的情况,我希望spring cloud和Hystrix应该支持这个。
答案 0 :(得分:0)
通过将使用@HystrixCommmand注释的单个方法移动到单独的类文件并断路器开始工作,解决了该问题。
谢谢,pvpkiran。