RocketMQ实现随缘分BUG小功能示例详解
作者:奔跑的毛球 时间:2023-01-20 04:21:05
以前公司的产品已经上线20多年了,主要是维护,也就是改bug。每周我们Team会从Jira上拿我们可以改的bug,因为每个团队负责的业务范围不一样,我们团队只能改我们自己业务范围的。这样每周大概有20个左右的新bug,假如团队一共10个人,那么均分就是每人两个,改完下班。
但是这BUG肯定有难有简单,大家肯定都愿意改简单的,在家办公,任务量完了不就等于放假么。开始是自己给自己抢,就忒卷,是欧美项目,所以客服晚上报出来的bug多。有的哥们早上5点起来看有没有新的简单的。
这对那些反应慢的兄弟不公平。领导分的话,就是能者多劳了,累的累死,闲的闲死。所以我们就需要一个随机的分bug小工具,正所谓听天由命,富贵在天。
实现过程
首先来n个消费者,n就是需要分的人数。
这里需要将这些消费者全部放入同一个group,这样这些bug会均分给这些消费者,而且当某个同事请假没有来的时候,那么就不启动自己的消费者,这样就是其他小伙伴均分。
public class RockerMQConsumer {
public static void main(String[] args) throws Exception {
//实例化消息消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("group_luke");
//指定nameserver地址
consumer.setNamesrvAddr("127.0.0.1:9876");
consumer.setPullBatchSize(1);
consumer.setMessageModel(MessageModel.CLUSTERING);
//订阅topic
consumer.subscribe("topic_luke","*");
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(new MessageListenerConcurrently() {
@SneakyThrows
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
for (MessageExt msg : msgs) {
System.out.println(new String(msg.getBody()));
TimeUnit.SECONDS.sleep(3);
}
// 标记该消息已经被成功消费
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
// 启动消费者实例
consumer.start();
System.out.printf("Consumer Started.%n");
}
}
上边的程序启动N个就行
生产者:
public class RocketMQProducer {
public static void main(String[] args) throws Exception {
//实例化消息生产者对象
DefaultMQProducer producer = new DefaultMQProducer("group_luke");
//设置消息过期时间
producer.setSendMsgTimeout(300000);
//设置NameSever地址
producer.setNamesrvAddr("127.0.0.1:9876");
//启动Producer实例
producer.start();
List<String> messages = new ArrayList<>();
messages.add("WFD-11356");//添加bug号
messages.add("WFD-11357");//添加bug号
messages.add("WFD-11358");//添加bug号
for (String message : messages) {
//创建消息 指定topic和消息体
Message msg = new Message("topic_luke", "tag", message.getBytes(StandardCharsets.UTF_8));
System.out.println(msg.toString());
//发送消息
producer.sendOneway(msg);
}
//关闭producer
producer.shutdown();
}
当生产者启动,将消息发送到RocketMQ的时候,各个消费者将收到消息,这也就决定了这周改哪个bug。
过程很粗制滥造,一个简单的思路,就是说RocketMQ可以实现没有人为干预的均分。当需要均分某些东西的时候,可以使用这个思路。
来源:https://juejin.cn/post/7129904989064953864
标签:RocketMQ,随缘,BUG
0
投稿
猜你喜欢
SpringBoot 上传文件判空以及格式检验流程
2023-01-19 05:07:36
浅谈Android开发中项目的文件结构及规范化部署建议
2022-05-13 12:47:37
Java设计模式之java备忘录模式详解
2023-08-22 19:31:07
学习Java内存模型JMM心得
2023-11-28 20:56:17
实战SpringBoot集成JWT实现token验证
2022-10-07 15:57:49
教你如何监控 Java 线程池运行状态的操作(必看)
2023-02-09 04:34:13
10种简单的Java性能优化
2023-06-20 20:43:41
java(jdk)环境变量配置(XP、win7、win8)图文教程详解
2021-11-01 15:06:48
浅谈JVM内存溢出原因和解决思路
2023-11-23 12:24:15
如何利用IDEA搭建SpringBoot项目整合mybatis实现简单的登录功能
2022-01-15 06:14:59
mybatis的插件机制示例详解
2023-02-24 23:46:17
解决使用ProcessBuilder踩到的坑及注意事项
2023-11-24 01:37:55
详解如何在Spring Security中自定义权限表达式
2023-11-08 05:11:24
java日期操作工具类(获取指定日期、日期转换、相隔天数)
2023-11-28 06:42:53
Java 根据网址查询DNS/IP地址的方法
2023-06-21 15:31:54
详解Java中多进程编程的实现
2021-12-22 01:46:06
浅谈virtual、abstract方法和静态方法、静态变量理解
2022-08-29 02:29:14
MyBatis-Plus实现多数据源的示例代码
2023-11-11 12:58:11
spring定时任务执行两次及tomcat部署缓慢问题的解决方法
2022-12-27 09:53:25
Maven配置多仓库无效的解决
2023-11-29 04:37:10