python activemq操作: consumer


跟xml的sax解析器類似, 不過最后一段不是很理想, 另外在linux下后台運行時, log不能隨時打印出來, 使用時不是很方便, 不能知道程序的存活情況

 

需要加入更多的機制,比如心跳,出錯挽救等

 

 

# coding=utf-8
"""
處理mq隊列中的消息, 創建相關的記錄,發送郵件給相關人進行后續工作,發送短信給注冊用戶
"""
import os,sys
import datetime
from django.utils.timezone import utc
import stomp
import time

from uequery.models import SmsBindTemp, TUserBasicInfo
from pysendmail import send_mail, send_msg_to_mq

user = os.getenv("ACTIVEMQ_USER") or "admin"
password = os.getenv("ACTIVEMQ_PASSWORD") or "password"
host = os.getenv("ACTIVEMQ_HOST") or "192.168.1.1"
port = os.getenv("ACTIVEMQ_PORT") or 61613
destination = sys.argv[1:2] or ["IDNO_REQUEST"]
destination = destination[0]


class MyListener(object):
    def __init__(self, conn):
        self.conn = conn


    def on_error(self, headers, message):
        print('[%s]received an error %s' % (message,time.strftime("%Y-%m-%d %H:%M:%S")))
        print('headers: ')
        print headers


    def on_message(self, headers, message):
        print "[%s]收到新的操作請求信息"%time.strftime("%Y-%m-%d %H:%M:%S")
        work_db = "default"
        # headers返回一個dict
        # message中沒有內容
        user_name = headers["name"]
        user_id = headers["userId"]
        user_address = headers["address"]
        user_idNumber = headers["idNumber"] # 下面該干嘛干嘛       
conn = stomp.Connection(host_and_ports=[(host, port)]) conn.set_listener("", MyListener(conn)) conn.start() conn.connect(login=user, password=password) conn.subscribe(destination, 'pyscript') print "waiting for messages..." while 1: time.sleep(1000)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM