import json
from mq_http_sdk.mq_exception import MQExceptionBase
from mq_http_sdk.mq_producer import TopicMessage
from mq_http_sdk.mq_client import MQClient
from application.common.log import Local
class MQ(object):
"""
MQ Class
"""
instance_id = "MQ_INST_1894469520484605_BXhXuzkZ"
def __init__(self, topic_name) -> None:
self.mq_client = MQClient("http://1894469520484605.mqrest.cn-qingdao-public.aliyuncs.com",
"LTAI4G7puhXtLyHzHQpD6H7A",
"nEbq3xWNQd1qLpdy2u71qFweHkZjSG")
topic_name = topic_name+"_v2"
self.producer = self.mq_client.get_producer(self.instance_id, topic_name)
def send_msg(self, video_dict):
"""
发送 mq,并且记录 redis
:param video_dict:
"""
strategy = video_dict["strategy"]
platform = video_dict["platform"]
try:
msg = TopicMessage(json.dumps(video_dict))
message_key = "{}-{}-{}".format(platform, strategy, video_dict['out_video_id'])
msg.set_message_key(message_key)
re_msg = self.producer.publish_message(msg)
Local.logger(platform,strategy).info("Publish Message Succeed. MessageID:%s, BodyMD5:%s\n" %
(re_msg.message_id, re_msg.message_body_md5))
except MQExceptionBase as e:
Local.logger(platform,strategy).error("Publish Message Fail. Exception:%s\n" % e)