延遲插件實現延遲隊列

環境要求

Github:
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange
Rabbitmq版本要求: RabbitMQ 3.5.7 and later versions.
Erlang版本要求: Erlang/OTP 18.0 and later versions
插件列表:
http://www.rabbitmq.com/community-plugins.html
延遲插件下載地址:
https://bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange/v3.6.x#files

安裝

拷貝rabbitmq_delayed_message_exchange到plugins
啓動插件:
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

Rabbitmq設置

web界面設置

測試結果

發送時間與接收時間

生產者代碼

# encoding: utf-8
import pika, time

'''創建rabbitmq連接'''
credentials = pika.PlainCredentials("michael", "michael")
connection = pika.BlockingConnection(pika.ConnectionParameters(
    host='192.168.12.171', credentials=credentials))


delay_channel = connection.channel()
'''發送消息確認'''
delay_channel.confirm_delivery()

'''消息延遲時間(ms)'''
headers = {
    "x-delay": 10000
}
delay_channel.basic_publish(exchange='delay',
                      routing_key='delay',
                      body=str( time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))),
                      properties=pika.BasicProperties(headers=headers, delivery_mode=2))

print " [x] Sent"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章