package com.shhxzq.fin.lifeapp.biz.impl; import java.util.Map; import com.shhxzq.fin.lifeapp.biz.utils.HawkeyeUtil; import com.shhxzq.fin.lifeapp.model.base.LaMonitorType; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.shhxzq.fin.lifeapp.biz.service.RabbitService; /** * rabbit服务实现类 * @author Gxx */ @Service("rabbitService") public class RabbitServiceImpl implements RabbitService { /** * 日志记录器 */ Logger logger = Logger.getLogger(RabbitServiceImpl.class); /** * mq执行器 */ @Autowired private AmqpTemplate amqpTemplate; /** * 推送la交易监控(为了异步执行) * @param wechatMap */ public void sendLaTransMonitor(Map map) { String jsonString = StringUtils.EMPTY; try { /** * 默认值为null不会转json,这里强制转 * {"a":1,"b":"","c":null,"d":"wuzhuti.cn"} */ jsonString = JSON.toJSONString(map, SerializerFeature.WriteMapNullValue); logger.info("推送la交易监控(为了异步执行),开始!"); amqpTemplate.convertAndSend("la_queue_la_trans_monitor_key", jsonString); logger.info("推送la交易监控(为了异步执行),结束!"); } catch (Exception e) { /** * mq异常捕获,不往外抛 */ logger.error("推送la交易监控(为了异步执行)[json:" + jsonString + "]!", e); /** * 报警 */ HawkeyeUtil.logEvent(LaMonitorType.RABBIT_MQ.getType(), LaMonitorType.RABBIT_MQ_EXCEPTION.getType(), e.getMessage()); } } }