关于java:线程校验中断刷新

校验以后线程是否中断否则进行刷新

refreshThead = new Thread(() -> {
            logger.info("RMQ对应接口消费者状态刷新...");
            while (!Thread.currentThread().isInterrupted()) {
                try {
                    try {
                        Thread.sleep(1000 * QContext.RMQ_CONSUMER_REFRESH_INTERVAL);
                    } catch (InterruptedException ex) {
                    }
                    if (logger.isDebugEnabled()) {
                        logger.debug("执行RMQ对应接口消费者状态刷新......");
                    }
                    EsbCacheManager cacheManager = BeanFactoryHelper.getBean("esbCacheManager", EsbCacheManager.class);
                    QContext.rmqConsumerActionIds.forEach((k, v) -> cacheManager.recordActionIdForConsumerOk(v, QContext.RMQ_CONSUMER_TTL));
                } catch (Exception e) {
                    logger.error("RMQ对应接口消费者状态刷新出错", e);
                    try {
                        Thread.sleep(10000);
                    } catch (InterruptedException ex) {
                    }
                }
            }
        });

校验线程是否中断Thread.currentThread()返回以后线程对象,isInterrupted()校验以后对象是否中断,不中断循环while内容一直得刷新

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理