RocketMQ實現(xiàn)隨緣分BUG小功能示例詳解
正文
以前公司的產(chǎn)品已經(jīng)上線20多年了,主要是維護,也就是改bug。每周我們Team會從Jira上拿我們可以改的bug,因為每個團隊負責的業(yè)務范圍不一樣,我們團隊只能改我們自己業(yè)務范圍的。這樣每周大概有20個左右的新bug,假如團隊一共10個人,那么均分就是每人兩個,改完下班。
但是這BUG肯定有難有簡單,大家肯定都愿意改簡單的,在家辦公,任務量完了不就等于放假么。開始是自己給自己搶,就忒卷,是歐美項目,所以客服晚上報出來的bug多。有的哥們早上5點起來看有沒有新的簡單的。
這對那些反應慢的兄弟不公平。領導分的話,就是能者多勞了,累的累死,閑的閑死。所以我們就需要一個隨機的分bug小工具,正所謂聽天由命,富貴在天。
實現(xiàn)過程
首先來n個消費者,n就是需要分的人數(shù)。
這里需要將這些消費者全部放入同一個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","*"); // 注冊回調(diào)實現(xiàn)類來處理從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); } // 標記該消息已經(jīng)被成功消費 return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); // 啟動消費者實例 consumer.start(); System.out.printf("Consumer Started.%n"); } }
上邊的程序啟動N個就行
生產(chǎn)者:
public class RocketMQProducer { public static void main(String[] args) throws Exception { //實例化消息生產(chǎn)者對象 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) { //創(chuàng)建消息 指定topic和消息體 Message msg = new Message("topic_luke", "tag", message.getBytes(StandardCharsets.UTF_8)); System.out.println(msg.toString()); //發(fā)送消息 producer.sendOneway(msg); } //關閉producer producer.shutdown(); }
當生產(chǎn)者啟動,將消息發(fā)送到RocketMQ的時候,各個消費者將收到消息,這也就決定了這周改哪個bug。
過程很粗制濫造,一個簡單的思路,就是說RocketMQ可以實現(xiàn)沒有人為干預的均分。當需要均分某些東西的時候,可以使用這個思路。
以上就是RocketMQ實現(xiàn)隨緣分BUG小功能示例詳解的詳細內(nèi)容,更多關于RocketMQ隨緣分BUG的資料請關注腳本之家其它相關文章!
相關文章
SpringBoot+WebSocket實現(xiàn)多人在線聊天案例實例
本文主要介紹了SpringBoot+WebSocket實現(xiàn)多人在線聊天案例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02SpringBoot+MyBatis-Plus實現(xiàn)分頁功能
在SpringBoot項目中,結(jié)合MyBatis-Plus(簡稱MP)可以非常方便地實現(xiàn)分頁功能,MP為開發(fā)者提供了分頁插件PaginationInterceptor,只需簡單配置即可使用,本文給大家介紹了SpringBoot+MyBatis-Plus實現(xiàn)分頁功能,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下2024-01-01java使用POI批量導入excel數(shù)據(jù)的方法
這篇文章主要為大家詳細介紹了java使用POI批量導入excel數(shù)據(jù)的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Java實現(xiàn)將導出帶格式的Excel數(shù)據(jù)到Word表格
在Word中制作報表時,我們經(jīng)常需要將Excel中的數(shù)據(jù)復制粘貼到Word中,這樣則可以直接在Word文檔中查看數(shù)據(jù)而無需打開另一個Excel文件。本文將通過Java應用程序詳細介紹如何把帶格式的Excel數(shù)據(jù)導入Word表格。希望這篇文章能對大家有所幫助2022-11-11