<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      配置文件
      rabbitMQ:
        host: rabbitmq.com
        port: 30000
        username: xxxx
        password: xxxxx
        topic: amq.topic
        queueName: icost-beta
        virtualHost: icost-beta
        #開啟發送確認機制,將來消息到達交換機以后有一個回調
        publisher-confirm-type: correlated
        #消息到達消息隊列回調(如果消息沒有成功到達隊列,會觸發回調方法)
        publisher-returns: true
        template:
          retry:
            enabled: true  # 開啟重發機制
            initial-interval: 1000ms #間隔 1秒
            max-attempts: 6    #最多發6次
            multiplier: 1.2 #每次間隔 時間*1.2
            max-interval: 10000ms  #每次最大間隔時間
        listener:
          simple:
            acknowledge-mode: manual

      讀取配置

          @Value("${rabbitMQ.username}")
          private String username;
      
          @Value("${rabbitMQ.password}")
          private String password;
      
          @Value("${rabbitMQ.host}")
          private String host;
      
          @Value("${rabbitMQ.port}")
          private int port;
      
          @Value("${rabbitMQ.topic}")
          private String topic;
      
          //聲明隊列
          @Value("${rabbitMQ.queueName}")
          private String  queueName;
      
          @Value("${rabbitMQ.virtualHost}")
          private String  virtualHost;

       

      發送消息

      /**
           * 發布信息
           */
          private void sendProducer (MQMessage mqMessage)throws IOException, TimeoutException{
              Gson gson = new Gson();
              // 發送同步消息
              String messageStr = gson.toJson(mqMessage);
              //創建連接工廠
              ConnectionFactory factory = new ConnectionFactory();
              factory.setUsername(username);
              factory.setPassword(password);
              //設置 RabbitMQ 地址
              factory.setHost(host);
              factory.setPort(port);
              factory.setVirtualHost(virtualHost);
              //建立到代理服務器到連接
              Connection conn = factory.newConnection();
              //獲得信道
              Channel channel = conn.createChannel();
              //聲明交換機
              channel.exchangeDeclare(topic, "topic",true);
              //消息持久化
              channel.queueDeclare(queueName,true,false,false,null);
              String domainType =null;
              if("ContractCreate".equals(mqMessage.getDomainType())){
                  domainType = "Contract."+mqMessage.getDomainType();
              }else if("ContractModification".equals(mqMessage.getDomainType())){
                  domainType = "Contract."+mqMessage.getDomainType();
              }else if("ContractPayment".equals(mqMessage.getDomainType())){
                  domainType = "Contract."+mqMessage.getDomainType();
              }else if("ContractSettlement".equals(mqMessage.getDomainType())){
                  domainType = "Contract."+mqMessage.getDomainType();
              }else if("EngineerInstruction".equals(mqMessage.getDomainType())){
                  domainType = "Contract."+mqMessage.getDomainType();
              }else if("JicaiContract".equals(mqMessage.getDomainType())){
                  domainType = "Contract."+mqMessage.getDomainType();
              }else if("bid".equals(mqMessage.getDomainType())){
                  domainType = "bid."+mqMessage.getDomainType();
              }else if("vendor".equals(mqMessage.getDomainType())){
                  domainType = "vendor."+mqMessage.getDomainType();
              }else if("SubProject".equals(mqMessage.getDomainType())){
                  domainType = "SubProject."+mqMessage.getDomainType();
              }else if("Project".equals(mqMessage.getDomainType())){
                  domainType = "SubProject."+mqMessage.getDomainType();
              }else if("ContractTemplate".equals(mqMessage.getDomainType())){
                  domainType = "TargetCost."+mqMessage.getDomainType();
              }else if("ContractPlanning".equals(mqMessage.getDomainType())){
                  domainType = "TargetCost."+mqMessage.getDomainType();
              }else if("TargetCost".equals(mqMessage.getDomainType())){
                  domainType = "TargetCost."+mqMessage.getDomainType();
              }else{
                  domainType = mqMessage.getDomainType();
              }
              //發布消息==>使用動態路由(通配符方式)
              String key = domainType; //指定發布的路由key   ContractCreate||ContractModification||ContractPayment||ContractSettlement||EngineerInstruction||JicaiContract
              channel.basicPublish(topic, key, true,null,messageStr.getBytes(StandardCharsets.UTF_8));
              // 同步發送消息,只要不拋異常就是成功。
              log.info(new Date() + " Send mq message success:--"+messageStr.toString());
              channel.close();
              conn.close();
      
          }

      接收消息

          /**
           * 訂閱消息,處理業務
           */
          public void normalSubscribe() throws IOException, TimeoutException {
              ConnectionFactory factory = new ConnectionFactory();
              factory.setUsername(username);
              factory.setPassword(password);
              //設置 RabbitMQ 地址
              factory.setHost(host);
              factory.setPort(port);
              factory.setVirtualHost(virtualHost);
      
              //建立到代理服務器到連接
              Connection conn = factory.newConnection();
              //獲得信道
              final Channel channel = conn.createChannel();
              //聲明交換機
              channel.exchangeDeclare(topic, "topic",true);
      
              //綁定臨時隊列與交換機并設置獲取交換機中動態路由
              String key = "bid.*";//使用通配符指定路由key
              channel.queueBind(queueName, topic, key);
              //消費消息
              channel.basicConsume(queueName, true, new DefaultConsumer(channel) {
                  @Override
                  public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                      try {
                          //接收到的消息內容
                          String msg = new String(body);
                          MQWorkflowMessageBody messageBody = objectMapper.readValue(msg, MQWorkflowMessageBody.class);
                          if ("bid".equals(messageBody.getDomainType()) && StringUtils.isNotBlank(messageBody.getBusinessKey()) && StringUtils.isNotBlank(String.valueOf(messageBody.getStatus()))) {
                              handler.processRequest(messageBody.getBusinessKey(), String.valueOf(messageBody.getStatus()));
                          }
                      } catch (Exception e) {
                          e.printStackTrace();
                      }
                  }
      
              });
      
          }

       

      posted on 2022-09-22 09:59  大黑.的博客  閱讀(172)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 成年女人免费视频播放体验区| 四虎影视4hu4虎成人| 亚洲一区在线成人av| 亚洲精品久久久久国产| 又污又黄又无遮挡的网站| 麻豆国产成人AV在线播放| 免费一区二区无码东京热| 伊人av超碰伊人久久久| 熟女精品色一区二区三区| 午夜视频免费试看| 国产亚洲精品久久久久婷婷图片| 吕梁市| 免费无码AV一区二区波多野结衣| 92国产精品午夜福利免费| 正在播放国产剧情亂倫| 日本高清视频网站www| 久久久久国产精品熟女影院| 国产精品久久一区二区三区| 麻豆一区二区中文字幕| 亚洲大尺度一区二区三区| 国产精品中文字幕一二三| 美女内射毛片在线看免费人动物| 国产熟女高潮一区二区三区| 国产永久免费高清在线观看| 免费无码高潮流白浆视频| 亚洲日本韩国欧美云霸高清| 又大又长粗又爽又黄少妇毛片 | 在线中文字幕国产一区| 欧美福利电影A在线播放| 育儿| 久热这里有精品免费视频| 免费VA国产高清大片在线| 国产在线精品一区二区夜色| 国产日韩精品一区二区在线观看播放| 国产一区精品在线免费看 | 亚洲日韩性欧美中文字幕| 最新亚洲av日韩av二区| 天天爽天天摸天天碰| 亚洲熟女乱色综合一区 | 自拍视频在线观看三级| www久久只有这里有精品|