dev
parent
4a38278c92
commit
f3e2da61b8
|
@ -7,11 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.Base64Utils;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Base64;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
@ -26,25 +28,70 @@ public class DataGeneratorTask {
|
|||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
private final Random random = new Random();
|
||||
|
||||
@Scheduled(cron = "0/10 * * * * ?") // 每10秒执行一次
|
||||
public void generateData() {
|
||||
// 生成随机数据
|
||||
String id = UUID.randomUUID().toString();
|
||||
String XM = RandomUtil.generateRandomAlphabetic(8);
|
||||
String Age = RandomUtil.generateRandomAlphabetic(2);
|
||||
String Time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
String plate = RandomUtil.generateRandomAlphabetic(7);
|
||||
String Card = RandomUtil.generateRandomAlphabetic(18);
|
||||
private String generateId() {
|
||||
return String.valueOf(random.nextInt(100000));
|
||||
}
|
||||
|
||||
// 创建实体类对象
|
||||
Data data1 = new Data(id, XM, Age, Time, plate, Card,"","");
|
||||
Data data2 = new Data(id, XM, Age, Time, plate, Card,"","");
|
||||
Data data3 = new Data(id, XM, Age, Time, plate, Card,"","");
|
||||
private String generateName() {
|
||||
String[] names = {"Alice", "Bob", "Charlie", "David", "Emma", "Frank", "Grace"};
|
||||
return names[random.nextInt(names.length)];
|
||||
}
|
||||
|
||||
// 发送消息到对应的消息队列
|
||||
rabbitTemplate.convertAndSend("data1Queue", data1);
|
||||
rabbitTemplate.convertAndSend("data2Queue", data2);
|
||||
rabbitTemplate.convertAndSend("data3Queue", data3);
|
||||
private String generateAge() {
|
||||
return String.valueOf(random.nextInt(100));
|
||||
}
|
||||
|
||||
private String generateTime() {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
return now.format(formatter);
|
||||
}
|
||||
|
||||
private String generatePlate() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append((char) ('A' + random.nextInt(26))); // Random uppercase letter
|
||||
sb.append((char) ('A' + random.nextInt(26))); // Random uppercase letter
|
||||
sb.append(String.format("%04d", random.nextInt(10000))); // Random 4-digit number
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private String generateCard() {
|
||||
return String.valueOf(random.nextLong());
|
||||
}
|
||||
|
||||
private String generateBase64Image() {
|
||||
// Generate a random image (for demonstration, you can replace this with actual image handling)
|
||||
byte[] randomBytes = new byte[100]; // Simulated image data
|
||||
random.nextBytes(randomBytes);
|
||||
return Base64Utils.encodeToString(randomBytes);
|
||||
}
|
||||
|
||||
@Scheduled(fixedRate = 60000) // Run every minute
|
||||
public void generateAndSendData() {
|
||||
sendDataToQueue("data1_queue");
|
||||
sendDataToQueue("data2_queue");
|
||||
sendDataToQueue("data3_queue");
|
||||
}
|
||||
|
||||
private void sendDataToQueue(String queueName) {
|
||||
String id = generateId();
|
||||
String name = generateName();
|
||||
String age = generateAge();
|
||||
String time = generateTime();
|
||||
String plate = generatePlate();
|
||||
String card = generateCard();
|
||||
String photo1 = generateBase64Image();
|
||||
String photo2 = generateBase64Image();
|
||||
|
||||
// Create a JSON message with the generated data
|
||||
String message = String.format("{\"id\": \"%s\", \"XM\": \"%s\", \"Age\": \"%s\", \"Time\": \"%s\", \"plate\": \"%s\", \"Card\": \"%s\", \"Photo1\": \"%s\", \"Photo2\": \"%s\"}",
|
||||
id, name, age, time, plate, card, photo1, photo2);
|
||||
|
||||
// Send message to the specified queue
|
||||
rabbitTemplate.convertAndSend(queueName, message);
|
||||
|
||||
System.out.println("Generated and sent data to " + queueName + " at: " + time);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue