package com.rax.vital.timer; import lombok.RequiredArgsConstructor; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; import java.util.Timer; import java.util.TimerTask; @Component @RequiredArgsConstructor public class VitalSignTimer { private final SimpMessagingTemplate simpMessagingTemplate; private TimerTask timerTask = null; private static final Map timerTaskMap = new HashMap(300); public void createAndSendMessage(String database) { TimerTask task = timerTaskMap.get(database); if (task != null) { return; } Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { // MongoDBSource mongoDBSource = new MongoDBSource("localhost:27017", "root", "root", "ceshi"); // MongoTemplate template = mongoDBSource.open(); // Query query = new Query(); // Criteria criteria = new Criteria(); // criteria.where(""); // query.addCriteria(criteria); // query.limit(1); // List cs = template.find(query, Map.class, "cs"); try { simpMessagingTemplate.convertAndSend("/topic/doctorMedicine", "111111111"); } catch (Exception e) { e.printStackTrace(); } } }; timer.schedule(timerTask, 0, 1000); timerTaskMap.put(database, timerTask); } public void stopTimerTask(String database) { TimerTask timerTask = timerTaskMap.get(database); if (timerTask != null) { timerTask.cancel(); timerTaskMap.remove(database); } } }