diff --git a/Dockerfile b/Dockerfile
index 0a60a48..5c4ab2e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -6,13 +6,14 @@ EXPOSE 8067
VOLUME /home/logs/vehicleTest
#构建复制外部文件到docker
COPY /target/vehicletest.jar /home/app.jar
+COPY /skywalking-agent.jar /home/skywalking-agent.jar
#工作目录 exec -it 进入容器内部后的默认的起始目录
WORKDIR /home
ENV TIME_ZONE Asia/Shanghai
#指定东八区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
-
-#启动java 程序
-ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-jar","/home/app.jar"]
+ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-javaagent:/home/skywalking-agent.jar","-Dskywalking.agent.service_name=xxxtest","-Dskywalking.collector.backend_service=124.221.216.186:11800","-jar","/home/app.jar"]
+##启动java 程序
+#ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-jar","/home/app.jar"]
diff --git a/pom.xml b/pom.xml
index 9bb635c..36a52c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,11 +59,6 @@
spring-boot-starter-amqp
2.6.2
-
- org.springframework.boot
- spring-boot-starter-data-redis
- 2.7.15
-
com.dragon
dragon-common-core
diff --git a/skywalking-agent.jar b/skywalking-agent.jar
new file mode 100644
index 0000000..5148d55
Binary files /dev/null and b/skywalking-agent.jar differ
diff --git a/src/main/java/com/vehicle/VehicleTestApp.java b/src/main/java/com/vehicle/VehicleTestApp.java
index d84a471..67da814 100644
--- a/src/main/java/com/vehicle/VehicleTestApp.java
+++ b/src/main/java/com/vehicle/VehicleTestApp.java
@@ -2,6 +2,9 @@ package com.vehicle;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
/**
* @author 冯凯
@@ -15,4 +18,11 @@ public class VehicleTestApp {
public static void main(String[] args) {
SpringApplication.run(VehicleTestApp.class,args);
}
+
+ @Bean
+ public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) {
+ RedisMessageListenerContainer container = new RedisMessageListenerContainer();
+ container.setConnectionFactory(connectionFactory);
+ return container;
+ }
}
diff --git a/src/main/java/com/vehicle/controller/VehicleOnlineController.java b/src/main/java/com/vehicle/controller/VehicleOnlineController.java
index 9e6af40..753d2de 100644
--- a/src/main/java/com/vehicle/controller/VehicleOnlineController.java
+++ b/src/main/java/com/vehicle/controller/VehicleOnlineController.java
@@ -4,19 +4,19 @@ package com.vehicle.controller;
import com.dragon.common.redis.service.RedisService;
import com.vehicle.domain.common.req.VehicleOnlineReq;
import com.vehicle.service.VehicleService;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.cache.CacheProperties;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.vehicle.utils.Conn;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.websocket.server.PathParam;
+import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
* @author 冯凯
@@ -35,6 +35,7 @@ public class VehicleOnlineController {
@Autowired
private RedisService redisService;
+
/**
* 将车辆在线请求转换为车辆在线对象
*
@@ -42,7 +43,11 @@ public class VehicleOnlineController {
*/
@PostMapping("/online")
public String vehicleOnline(@RequestBody @Validated VehicleOnlineReq vehicleOnlineReq) {
+
String topic = vehicleService.vehicleOnline(vehicleOnlineReq);
+ List eventList = new ArrayList<>();
+ Collections.addAll(eventList, "historyTrackEvent", "faultEvent");
+ redisService.setCacheList("event_" + vehicleOnlineReq.getVin(), eventList);
//返回该车辆的主题
log.info("topic:{}", topic);
return topic;
@@ -50,13 +55,25 @@ public class VehicleOnlineController {
}
@PostMapping("/upd")
- public void updRedis(){
- List strings = redisService.getCacheList("vin");
- redisService.deleteObject("vin");
+ public void updRedis() {
+ List strings = redisService.getCacheList("vin");
+ redisService.deleteObject("vin");
- Collections.addAll(strings,"123456","888888");
- // System.out.println(cacheList);
- redisService.setCacheList("vin",strings);
+ Collections.addAll(strings, "123456", "888888");
+ // System.out.println(cacheList);
+ redisService.setCacheList("vin", strings);
}
+ @PostMapping("/fence/{vin}")
+ public void fence(@PathVariable String vin) {
+// ArrayList fenceList = new ArrayList<>();
+// fenceList.add("fenceEvent");
+ redisService.setCacheObject(vin, "java", 10L, TimeUnit.SECONDS);
+
+ }
+
+ @GetMapping("/test")
+ public void dataTest(@RequestParam("databaseName") String databaseName, @RequestParam("tName")String tName){
+ Conn.select(databaseName,tName);
+ }
}
diff --git a/src/main/java/com/vehicle/utils/RedisKeyExpirationListener.java b/src/main/java/com/vehicle/utils/RedisKeyExpirationListener.java
new file mode 100644
index 0000000..66614b5
--- /dev/null
+++ b/src/main/java/com/vehicle/utils/RedisKeyExpirationListener.java
@@ -0,0 +1,22 @@
+package com.vehicle.utils;
+
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
+
+ public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
+ super(listenerContainer);
+ }
+
+ @Override
+ protected void doHandleMessage(Message message) {
+ String expiredKey = message.toString();
+ if (expiredKey.startsWith("fault"))
+ // 处理过期键的逻辑
+ System.out.println("Key expired: " + expiredKey);
+ }
+}