添加消息队列做系统间异步同步

依赖的组件

<dependency>
    <groupId>com.aliyun.mns</groupId>
    <artifactId>aliyun-sdk-mns</artifactId>
    <version>1.1.7</version>
</dependency>

添加进行消息同步发送的service

package net.sahv.realnetwork.service;

import com.alibaba.fastjson.JSON;
import com.aliyun.mns.client.CloudAccount;
import com.aliyun.mns.client.CloudQueue;
import com.aliyun.mns.client.MNSClient;
import com.aliyun.mns.model.Message;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import java.util.HashMap;


@Servicepublic
class WXSyncService {
    private final Logger logger = Logger.getLogger(WXSyncService.class);
    private static MNSClient client = new CloudAccount("w0C4xyNgsq818Vnn", "56LcQF4JTXmSeXVdpv9MLzTBtLxGUP", "http://1989891155472375.mns.cn-hangzhou.aliyuncs.com").getMNSClient();
    private static CloudQueue queue = client.getQueueRef("zhsync-v1");
    public void sendMNS(HashMap msg) {
        try {
            Message message = new Message();
            message.setMessageBody(JSON.toJSONString(msg));
            Message putMsg = queue.putMessage(message);
            logger.info(" ---  Send MNS ---- " + msg + " --- mns id: " + putMsg.getMessageId());
        } catch (Exception e) {
            logger.info(" --- Send MNS ERROR --- " + msg + " ---  error: " + e);
        }
    }
}

在 AdminShopController L328 (theOrderService.ShopPayQuick 和 L364 theOrderService.insertCashConsumption之后) 添加

try {
    Member member = memberService.selectBymemberId(memberId);
    HashMap<String, Object> map = new HashMap<>();
    map.put("phone", member.getCellphone());
    map.put("money", payMoney);
    map.put("value", money);
    map.put("type", "consume");
    wxSyncService.sendMNS(map);
} catch (Exception e) {    
//
}

TimerCount L120 (反储之后),添加

try {
    Member member = memberService.selectBymemberId(memberId);
    HashMap<String, Object> map = new HashMap<>();
    map.put("phone", member.getCellphone());
    map.put("money", valuePrice);
    map.put("type", "back");
    wxSyncService.sendMNS(map);
} catch (Exception e) {
    //
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,679评论 25 709
  • 消息队列设计精要 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终...
    meng_philip123阅读 5,393评论 1 25
  • 你有几个知己?‘人生得一知己足矣’说明知己的重要意义,从侧面反映了知己数量少,也就是我们熟悉的人少。据不完全统计,...
    乜石头阅读 3,068评论 2 5
  • 选摘 “为什么会引发争论(两个人之间的意见不合)?甚至争议(多人参与或观望的)?什么么这些最后都会演变成争吵(主要...
    通往自由之路阅读 1,715评论 0 1

友情链接更多精彩内容