遅延プラグインによる遅延待ち行列の実現
2486 ワード
環境に対する要求
Github:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Rabbiitmqバージョンの要求:RabitMQ 3.5.and later versions.Errlangバージョンの要求:Errlang/OTP 18.0 and later versionsプラグインのリスト:http://www.rabbitmq.com/community-plugins.html 遅延プラグインのダウンロード先:https://bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_メッセージexchange/v 3.6.x〹files
インストール
ラヴィットmqコピーdelayed_メッセージexchangeからplugisまでプラグインを起動します.rabitmq-plugins enable rabbiitmq_.delayed_メッセージexchange
Rabbiitmq設定
テスト結果
生産者コード
Github:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Rabbiitmqバージョンの要求:RabitMQ 3.5.and later versions.Errlangバージョンの要求:Errlang/OTP 18.0 and later versionsプラグインのリスト:http://www.rabbitmq.com/community-plugins.html 遅延プラグインのダウンロード先:https://bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_メッセージexchange/v 3.6.x〹files
インストール
ラヴィットmqコピーdelayed_メッセージexchangeからplugisまでプラグインを起動します.rabitmq-plugins enable rabbiitmq_.delayed_メッセージexchange
Rabbiitmq設定
テスト結果
生産者コード
# 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"