修改社交会员
//封装发送入参: SocialMember socialMember = new SocialMember(); socialMember.setLastUpd(new Date()); //大数据要求设置修改时间 String getmId = socialMember.setmId(request.getData().getmId();)); }
sendRocketMqForUpdateMember(socialMember); |
rocketMq 发送消息
public void sendRocketMqForUpdateMember(SocialMember socialMember) { try { BlockChainMemberUpdateItem item = new BlockChainMemberUpdateItem(); item.setFlMemberId(String.valueOf(socialMember.getmId()));// 会员id item.setFlToken(null); // token item.setFlRole(null); // 会员角色 item.setFlCategory("2");// 会员类别 item.setFlStatus("0"); // 会员状态 item.setFlOper("update"); // 对数据进行的操作(新增还是更新 insert或者update) item.setFlUpdated(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));// 会员的更新时间 // 由会员信息组成的一个json字符串 item.setFlData(socialMember); // 数据签名 String plainTextData = GsonUtil.toJson(item, BlockChainMemberUpdateItem.class); String encryptData = EccService.sign(plainTextData,BlockChainAdapter.SOCIAL_TYPE); LogMgr.sysInfo("获取的签名数据:{}", encryptData); BlockChainMemberRequest<BlockChainMemberUpdateItem> request = new BlockChainMemberRequest<BlockChainMemberUpdateItem>(); request.setData(item); request.setFlDataSignature(encryptData); String jsonData = GsonUtil.toJson(request, BlockChainMemberRequest.class); rocketMqProductor.sendMsg(null, BLOCK_CHAIN_TOPIC, BLOCK_CHAIN_UPDATE_TAG, null, jsonData); //========================标签发送数据======================= LabelMemberItem labelMemberItem = new LabelMemberItem(); labelMemberItem.setFlMemberId(String.valueOf(String.valueOf(socialMember.getmId()))); // 会员id labelMemberItem.setFlCategory("1");// 会员类别 labelMemberItem.setFlStatus("0"); // 会员状态 labelMemberItem.setFlOper("update"); // 对数据进行的操作(新增还是更新 insert或者update) labelMemberItem.setFlCreated(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));// 会员的更新时间 labelMemberItem.setFlData(socialMember); String labelJsonData = FastJsonUtil.parseToJSON(labelMemberItem); rocketMqProductor.sendMsg(null, LABEL_TOPIC, LABEL_UPDATE_TAG, null, labelJsonData); } catch (Exception e) { LogMgr.sysInfo("rocketMq send message fail"); } } |
自己封装方法
package com.foriseland.fas.member.mq; import com.foriseland.fjf.mq.broadcasting.BroadcastProducer; import org.apache.rocketmq.client.producer.SendResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * @author zhangchenglin * @describe * @createTime 2018/3/28 */ @Component public class RocketMqProductor { private static final Logger logger = LoggerFactory.getLogger(RocketMqProductor.class); @Autowired private BroadcastProducer producer; static int startOnly = 0; public SendResult sendMsg(String producerGroup, String topic, String tags, String keys, String msg) { if (producerGroup == null) { producerGroup = "-"; } if (startOnly == 0) { try { producer.setProducerGroup("-", producerGroup); producer.getRocketProducer().setRetryTimesWhenSendFailed(5); producer.start(); startOnly++; } catch (Exception e) { logger.error("start rocketMq exception:{}", e); return null; } } SendResult sendResult = null; try { sendResult = producer.send(producerGroup, topic, tags, keys, msg); logger.info("rocketMq发送结果:{}", sendResult); } catch (Exception e) { logger.error("rocketMq send message exception:{}", e); } finally { shutDown(); } return sendResult; } public void shutDown() { // startOnly = 0; // producer.shutdown(); } } |
底层实现---直接调用
@SuppressWarnings("static-access") public SendResult send(String producerGroup, String topic, String tags, String keys, String body) throws UnsupportedEncodingException,MQClientException, RemotingException, MQBrokerException, InterruptedException { rocketProducer.newInstance().setProducerGroup(producerGroup ); //producer.start(); long startTime = System.currentTimeMillis(); Message message = new Message(topic, tags, keys, body.getBytes(RemotingHelper.DEFAULT_CHARSET)); int messageDelayTimeLevel = rocketProducer.getRocketMqClientConfig().getRocketConfig().getMessageDelayTimeLevel(); message.setDelayTimeLevel(messageDelayTimeLevel); SendResult sendResult = rocketProducer.newInstance().send(message); long endTime = System.currentTimeMillis(); logger.info("send cost:" + (endTime - startTime) + "ms"); logger.info(sendResult); return sendResult; } |