【前言】
最近接触了一个项目,对数据库的数据进行监听,当监听到数据库数据进行了增删改,就会更新es或者做一些业务处理,这时候就有一个疑问,如果我项目运行中,我想关掉这个服务的监听,而不是杀死服务,这时候怎么处理呢?
【过程】
@Component
public class SpringFinishedListener implements InitializingBean, ApplicationListener<ContextRefreshedEvent> {//实现对spring的启动器进行监听
private static final Logger logger = LoggerFactory.getLogger(SpringFinishedListener.class);
private final ReentrantLock lock = new ReentrantLock();
private volatile boolean started = false;//用变量控制开关
private final Thread receiveThread = new Thread(new ReceiveTask(), "TunnelReceiveThread-logical-slot");
@Autowired
private EventParserService eventParserService;
@Autowired
private PublisherService publisherService;
@Autowired
private WhiteListPublisherService whiteListPublisherService;
//做业务处理
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
try {
createRplConn();
createRplSlot();
createRplStream();
started = true;
receiveThread.start();
Thread.sleep(10*1000);
//队列消费
publisherService.consume();
//白名单队列消费
whiteListPublisherService.consume();
l

最低0.47元/天 解锁文章
5327

被折叠的 条评论
为什么被折叠?



