package com.xiaopeng.pushMessage.webSocket.handler;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.xiaopeng.api.feignClient.maintenance.XpTaskClient;
|
import com.xiaopeng.api.model.maintenance.XpTask;
|
import com.xiaopeng.pushMessage.webSocket.service.WebSocketUserService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.PostConstruct;
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.concurrent.Executors;
|
import java.util.concurrent.TimeUnit;
|
|
//@Component
|
@Slf4j
|
//public class TestMsgHandler implements BusinessMsgHandler{
|
public class TestMsgSchedule {
|
|
|
@Resource
|
XpTaskClient xpTaskClient;
|
|
@Autowired
|
private WebSocketUserService webSocketUserService;
|
|
@PostConstruct
|
public void setup() {
|
Executors.newSingleThreadScheduledExecutor()
|
.scheduleWithFixedDelay(this::send, 10, 1, TimeUnit.MINUTES);
|
}
|
|
public void send() {
|
String msg;
|
XpTask xpTask = xpTaskClient.queryInfoByVehicleId(20L).getData();
|
HashMap<String, Object> ret = new HashMap<>();
|
ret.put("type", "task");
|
ret.put("data", xpTask);
|
try {
|
msg = om.writeValueAsString(ret);
|
} catch (JsonProcessingException e) {
|
throw new RuntimeException("Message serialization failed", e);
|
}
|
webSocketUserService.broadcastMessage(msg);
|
}
|
@Autowired ObjectMapper om;
|
@Autowired MongoTemplate mongoTemplate;
|
|
|
}
|