ソースを参照

升级spring boot到2.7.2,更新雪花算法时间上限,修改消息队列配置文件版本不兼容的问题

Scott 2 年 前
コミット
ec6ace4850

+ 2 - 2
build.gradle

@@ -1,5 +1,5 @@
 plugins {
-    id 'org.springframework.boot' version '2.0.2.RELEASE'
+    id 'org.springframework.boot' version '2.7.2'
 }
 
 apply plugin: 'java'
@@ -16,7 +16,7 @@ sourceCompatibility = 1.8
 
 
 repositories {
-// 本地仓库
+    // 本地仓库
     mavenLocal()
     // ali 代理的central仓
     maven {url 'https://maven.aliyun.com/repository/central'}

+ 5 - 3
src/main/java/com/emato/ccnet/wx/manager/snow/SnowflakeIdWorker.java

@@ -14,8 +14,10 @@ package com.emato.ccnet.wx.manager.snow;
  */
 public class SnowflakeIdWorker {
 // ==============================Fields===========================================
-    /** 开始时间截 (2015-01-01) */
-    private final long twepoch = 1420041600000L;
+    /** 开始时间截 (毫秒)(2015-01-01 00:00:00) */
+    // private final long twepoch = 1420041600000L;
+    /** 开始时间截(毫秒) (2022-01-01 00:00:00) */
+    private final long twepoch = 1640966400000L;
 
     /** 机器id所占的位数 */
     private final long workerIdBits = 5L;
@@ -135,7 +137,7 @@ public class SnowflakeIdWorker {
     //==============================Test=============================================
     /** 测试 */
     public static void main(String[] args) {
-        SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);
+        SnowflakeIdWorker idWorker = new SnowflakeIdWorker(2, 2);
         for (int i = 0; i < 100; i++) {
             long id = idWorker.nextId();
             System.out.println(Long.toBinaryString(id));

+ 4 - 2
src/main/java/com/emato/ccnet/wx/rabbitMq/RabbitMqConfig.java

@@ -1,7 +1,8 @@
 package com.emato.ccnet.wx.rabbitMq;
 
-import org.mariadb.jdbc.internal.logging.Logger;
-import org.mariadb.jdbc.internal.logging.LoggerFactory;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.amqp.core.Binding;
 import org.springframework.amqp.core.BindingBuilder;
 import org.springframework.amqp.core.DirectExchange;
@@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.core.env.Environment;
 
+
 /**
  * rabbitmq 的配置类
  */

+ 9 - 4
src/main/java/com/emato/ccnet/wx/rabbitMq/rabbitImpl/Ceb311OrderListenerImpl.java

@@ -7,8 +7,10 @@ import com.google.gson.Gson;
 import com.rabbitmq.client.Channel;
 import org.springframework.amqp.core.AcknowledgeMode;
 import org.springframework.amqp.core.Message;
-import org.springframework.amqp.rabbit.core.ChannelAwareMessageListener;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
 import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
+import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Component;
@@ -21,15 +23,18 @@ public class Ceb311OrderListenerImpl extends RabbitMqConfig {
     @Autowired
     private Ceb311CustiomsResponse ceb311CustiomsResponse;
 
+    @Autowired
+    private Queue ccnetGainDeclareCspQueue;
+
     /**
      * 队列消息监听
      *
      * @return
      */
     @Bean
-    public SimpleMessageListenerContainer goodsCEB201MessageContainer() {
-        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory());
-        container.setQueues(super.ccnetGainDeclareCspQueue());
+    public SimpleMessageListenerContainer goodsCEB201MessageContainer(ConnectionFactory connectionFactory) {
+        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
+        container.setQueues(ccnetGainDeclareCspQueue);
         container.setExposeListenerChannel(true);
         container.setMaxConcurrentConsumers(1);
         container.setConcurrentConsumers(1);