public static void main(String[] args) throws JMSException {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
// 方式2
activeMQConnectionFactory.setUseAsyncSend(true);//设置异步投递
Connection connection = activeMQConnectionFactory.createConnection();
// 方式3
((ActiveMQConnection)connection).setUseAsyncSend(true);//设置异步投递
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(ACTIVEMQ_QUEUE_NAME);
MessageProducer producer = session.createProducer(queue);
try {
for (int i = 0; i < 3; i++) {
TextMessage textMessage = session.createTextMessage(“tx msg–” + i);
producer.send(textMessage);
}
System.out.println(“消息发送完成”);
} catch (Exception e) {
e.printStackTrace();
} finally {
producer.close();
session.close();
connection.close();
}
}
}
(3) 异步发送如何确认发送成功
public class JmsProduce_asynsc {
public static final String ACTIVEMQ_URL = “tcp://192.168.109.101:61616”;
public static final String QUEUE_NAME = “asynsc01”;
public static void main(String[] args) throws JMSException {
ActiveMQConnectionFactory mqConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
mqConnectionFactory.setUseAsyncSend(true);//设置异步投递
Connection conn = mqConnectionFactory.createConnection();
conn.start();
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(QUEUE_NAME);
ActiveMQMessageProducer mqMessageProducer = (ActiveMQMessageProducer) session.createProducer(queue);
mqMessageProducer.setDeliveryMode(DeliveryMode.PERSISTENT);
TextMessage textMessage = null;
for (int i = 1; i <= 3; i++) {
textMessage = session.createTextMessage(“msg–asynsc01-----” + i);
textMessage.setJMSMessageID(UUID.randomUUID().toString().substring(0,3)+“—orderAchang”);
String msgID = textMessage.getJMSMessageID();
//new AsyncCallback()设置异步投送的回调函数
mqMessageProducer.send(textMessage, new AsyncCallback() {
@Override
public void onSuccess() {
//发送成功的情况
System.out.println(msgID+“has benn ok send”);
}
@Override
public void onException(JMSException exception) {
//发送失败的情况
System.out.println(msgID+“fail to send to mq”);
}
});
}
mqMessageProducer.close();
session.close();
conn.close();
System.out.println(“消息发布到MQ完成===”);
}
}
控制台观察发送消息的信息:
(1) 介绍
官网文档:http://activemq.apache.org/delay-and-schedule-message-delivery.html
(2) 修改配置文件并重启
之后重启activemq
(3) 代码实现
生产者代码:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
这份清华大牛整理的进大厂必备的redis视频、面试题和技术文档
祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!
感谢大家的支持!!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算