使用弹簧执行器和HalfOpenHandler对JMS生产者进行健康检查

问题描述

我有一个任务要使用执行器(准备就绪)和Halfopen处理程序检查运行状况。目前,我在HalfOpenHandlerConfig中使用以下数据库(数据源)运行状况检查:

@Bean
    public ThrottlingExceptionHalfOpenHandler studyRouteHalfOpenHandler() {
        return new StudyRouteHalfOpenHandler(new DataSourceHealthindicator(dataSource));
    }

我同时拥有消费者和生产者,它们引用了不同的队列。我只想检查生产者的健康状况,所以当生产者遇到问题时,代码会打开通往生产者的路线,依此类推。

我是否仅使用JmsHealthindicator添加一个bean?我不确定如何区分正在检查的队列(消费者或生产者)运行状况。这是我的代码

RouteHalfOpenHandler:

@Loggable(Loggable.DEBUG)
public class StudyRouteHalfOpenHandler implements ThrottlingExceptionHalfOpenHandler {

    private final Healthindicator healthindicator;

    public StudyRouteHalfOpenHandler(final Healthindicator healthindicator) {
        this.healthindicator = healthindicator;
    }

    @Override
    public boolean isReadyToBeClosed() {
        return healthindicator.health().getStatus().equals(Status.UP);
    }
}

RouteHalfOpenHandlerConfig

@Configuration
@Import(DataSourceConfig.class)
public class StudyRouteHalfOpenHandlerConfig {

    @Autowired
    private DataSource dataSource;

    @Bean
    public ThrottlingExceptionHalfOpenHandler studyRouteHalfOpenHandler() {
        return new StudyRouteHalfOpenHandler(new DataSourceHealthindicator(dataSource));
    }
}

我不确定是否需要发布我的StudyGateway课程。我修改了一些属性名称,因此请忽略它们。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)