使用mq java代码实现延迟任务
时间: 2024-03-15 15:27:43 浏览: 60
关于利用RabbitMQ实现延迟任务的方法详解
以下是使用ActiveMQ实现延迟任务的Java代码示例:
//创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
//创建连接
Connection connection = connectionFactory.createConnection();
connection.start();
//创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建目的地
Queue queue = session.createQueue("delayed.queue");
//创建生产者
MessageProducer producer = session.createProducer(queue);
//创建消息
TextMessage message = session.createTextMessage("Hello, delayed task!");
//设置消息延迟时间
message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 5000);
//发送消息
producer.send(message);
//关闭连接
producer.close();
session.close();
connection.close();
在上面的代码中,我们使用ActiveMQ提供的ScheduledMessage.AMQ_SCHEDULED_DELAY属性来设置消息的延迟时间。这个属性的值是一个long类型的数值,表示消息延迟的毫秒数。
当我们发送消息时,ActiveMQ会将消息放入一个延迟队列中,并在指定的延迟时间后将消息转移到目标队列中。这样就可以实现延迟任务了。
阅读全文