def sendRegisterMessage(server,routingKeys):
exchangeName="qos.service"
queueName="heartbeatService"
msgHeaders={"__TypeId__":"com.tecomgroup.qos.communication.message.ServerStarted"}
msgBody={"originName":None,"serverName":""}
serverConfig = server.getConfigObject()
errors=[]
mqConf = getMqConf(serverConfig['mq'], server.name, errors)
# raise exception only if all mq's are down, so message sending is impossible
if mqConf is None:
raise Exception("sendRegisterMessage error: " + str(errors))
connection=pika.BlockingConnection(pika.URLParameters(mqConf['amqpUrl']))
channel = connection.channel()
channel.exchange_declare(exchange=exchangeName, exchange_type='topic', durable=True)
channel.queue_declare(queue=queueName, durable=True,arguments={'x-message-ttl':1800000})
channel.queue_bind(queue=queueName, exchange=exchangeName, routing_key="server.agent.register")
for key in routingKeys:
channel.basic_publish(
exchange=exchangeName,
routing_key=key,
properties=pika.BasicProperties(
delivery_mode=2, # make message persistent
content_type='application/json',
content_encoding='UTF-8',
priority=0,
expiration="86400000",
headers=msgHeaders),
body=json.dumps(msgBody).encode('UTF-8')
)
connection.close()
评论列表
文章目录