Xxl-Job管理spring-amqp消费者

本文介绍了如何使用Xxl-Job在Spring Boot应用中管理和调度RabbitMQ消费者。通过升级QueueConsumerStarterJob,更新Xxl-Job配置,手动注册执行器并设置任务调度类型为cron,实现了消费者在队列机上的自动启动和管理。同时,文章探讨了在分布式环境中的消费者启动控制,并提供了相关的代码实现和配置细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2021-08-10 更新

之前的用法需要在每次发布后都执行一次任务,也没有非常方便;所以在下文的基础上又进行了一次改进,达到一次启动,“终生启动”的效果。

1. 升级QueueConsumerStarterJob

@Component
@Slf4j
public class QueueConsumerStarterJob {
    @Autowired
    private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry;

    private boolean isStarted = false;

    @XxlJob("AmqpConsumerJobHandler")
    public void amqpConsumerJobHandler() throws Exception {
        if (!isStarted) {
            synchronized (this) {
                if (!isStarted) {
                    log.info("开始amqp消费启动队列");
                    rabbitListenerEndpointRegistry.start();
                    isStarted = true;
                } else {
                    log.debug("消费已启动,不重复启");
                }
            }
        } else {
            log.debug("消费已启动,不重复启");
        }
    }

    public void setStarted(boolean started) {
        isStarted = started;
    }
}

可以看到在之前的基础上添加了一个启动标识isStarted,可以推测出amqpConsumerJobHandler会被多次调用。

2. 更新xxl-job配置

2.1 执行器管理

将注册方式变更为手动,然后只保留队列机的机器地址(可能是多个);
在这里插入图片描述

2.2 任务管理

将任务的调度类型设置为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值