美文网首页
添加消息队列做系统间异步同步

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

作者: 6254dbf014a9 | 来源:发表于2016-12-14 13:40 被阅读0次

依赖的组件

<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) {
    //
}

相关文章

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

    依赖的组件 添加进行消息同步发送的service 在 AdminShopController L328 (theO...

  • CGD相关知识

    GCD队列总体分为同步队列和异步队列两种,添加到同步队列中的任务,根据添加的顺序挨个执行,添加到异步队列里面的任务...

  • Android中异步消息和同步屏障

    异步消息和同步屏障 Android消息队列MessageQueue中加入的消息分成同步消息和异步消息,在平常开发中...

  • GCD基础总结一

    上代码~ 同步串行队列 同步并行队列 异步串行队列 异步并行队列 主队列同步 会卡住 主队列异步

  • GCD的几种创建方式及基本使用

    同步函数 同步函数+主队列 同步函数+串行队列 同步函数+并发队列 异步函数 异步函数+主队列 异步函数+串行队列...

  • GCD队列、同步异步

    GCD队列、同步异步 GCD队列、同步异步

  • spring boot 进阶(二)springBoot整合Rab

    在我们大多应用中,都可以通过消息服务中间件来提升系统异步通信,扩展解耦能力。 同步/异步 因为消息队列一般都是异步...

  • 多线程GCD笔记

    同步函数 + 主队列 异步函数 + 主队列 同步函数 + 串行队列 异步函数 + 串行队列 同步函数 + 并发队列...

  • RabbitMQ

    什么是消息队列:用于服务间进行异步通迅(传递数据)的组件。 什么时候使用消息队列:需要同步等待,不能及时给用户结果...

  • iOS-dispatch_queue_t

    获取系统队列 1.常见用法 自定义队列 1.并行队列,异步执行 同步任务 2.串行队列,异步执行

网友评论

      本文标题:添加消息队列做系统间异步同步

      本文链接:https://www.haomeiwen.com/subject/qpuimttx.html