使用mq代码实现延迟任务
时间: 2023-11-21 11:59:11 浏览: 180
以下是使用RabbitMQ实现延迟任务的Python示例代码:
```python
import pika
import time
# 连接RabbitMQ服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明一个延迟队列
channel.exchange_declare(exchange='delayed', exchange_type='x-delayed-message', arguments={
'x-delayed-type': 'direct'
})
# 声明一个工作队列
channel.queue_declare(queue='work_queue')
# 将延迟队列绑定到工作队列
channel.queue_bind(exchange='delayed', queue='work_queue')
# 发送一个延迟消息
message = 'Hello, delayed world!'
headers = {'x-delay': 5000}
channel.basic_publish(exchange='delayed', routing_key='work_queue', body=message, properties=pika.BasicProperties(headers=headers))
print(" [x] Sent %r" % message)
# 等待消息被处理
time.sleep(6)
# 关闭连接
connection.close()
```
这个示例代码使用了一个名为“delayed”的交换机来实现延迟队列,将一个“工作队列”和“延迟队列”绑定在一起。发送消息时,通过设置消息头中的“x-delay”属性来指定延迟的时间(以毫秒为单位)。在等待了一段时间之后,消息将被传送到“工作队列”中进行处理。
阅读全文