利用amqplib测试rabbitmq

1、publisher端:amqp_publisher_test.py

# -*- coding: utf-8 -*-

from amqplib import client_0_8 as amqp
import sys
import datetime


conn = amqp.Connection(host="xx.xx.xx.43:5672", userid="guest", password="guest", virtual_host="/", insist=True)
chan = conn.channel()

time = sys.argv[1]
now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
count = 1
while now_time < sys.argv[1]:
    now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    msg = amqp.Message(str(count))
    msg.properties["delivery_mode"] = 2
    try:
        chan.basic_publish(msg,exchange="sorting_room",routing_key="jason")
        count += 1
    except:
        conn = amqp.Connection(host="xx.xx.xx.43:5672", userid="guest", password="guest", virtual_host="/", insist=False)
        chan = conn.channel()
        chan.basic_publish(msg,exchange="sorting_room",routing_key="jason")
        count += 1
    print >> open("43.txt","a+"), count
    print count
print 'end'

try:
    chan.close()
    conn.close()
except Exceptions as msg:
    log.msg("rabbitmq connect has a error: %s"% msg, level=log.ERROR)

2、consumer端amqp_consumer.py

# -*- coding: utf-8 -*-

from amqplib import client_0_8 as amqp

conn = amqp.Connection(host="xx.xx.xx.xx:5672", userid="guest", password="guest", virtual_host="/", insist=True)
chan = conn.channel()

chan.queue_declare(queue="po_box", durable=True, exclusive=False, auto_delete=False)
chan.exchange_declare(exchange="sorting_room", type="direct", durable=True, auto_delete=False,)
chan.queue_bind(queue="po_box", exchange="sorting_room", routing_key="jason")

def recv_callback(msg):
    print 'Received: ' + msg.body + ' from channel #' + str(msg.channel.channel_id)
    print >> open("txt_44.txt","a+"), msg.body
    msg.channel.basic_ack(delivery_tag = msg.delivery_tag)

chan.basic_consume(queue='po_box', no_ack=False, callback=recv_callback, consumer_tag="testtag")
while True:
    chan.wait()
chan.basic_cancel("testtag")

chan.close()
conn.close()

注:

(1)运行publisher端:python2.7 amqp_publisher_test.py "2013-07-17 18:18:30" 

(2)运行consumer端:python2.6 amqp_consumer.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值