UnitSttsJobThread.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.its.op.scheduler.job;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.its.op.dto.its.unit.TbUnitSystSttsDto;
  5. import com.its.op.global.TbUnitSystManager;
  6. import com.its.op.service.its.unit.TbUnitSystService;
  7. import com.its.op.websocket.ItsWebSocketMessage;
  8. import com.its.op.websocket.ItsWebSocketSessionManager;
  9. import lombok.RequiredArgsConstructor;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.core.env.Environment;
  12. import org.springframework.scheduling.annotation.Async;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.util.StopWatch;
  15. import org.springframework.web.socket.TextMessage;
  16. import javax.annotation.PostConstruct;
  17. import java.util.List;
  18. @Slf4j
  19. @RequiredArgsConstructor
  20. @Service
  21. public class UnitSttsJobThread {
  22. private final Environment environment;
  23. private final TbUnitSystService unitSystService;
  24. private final TbUnitSystManager unitSystManager;
  25. private ObjectMapper mapper;
  26. @PostConstruct
  27. private void init() {
  28. this.mapper = new ObjectMapper();
  29. log.info("{}", this);
  30. }
  31. @Async("schJobExecutor")
  32. public void run() {
  33. //log.info("START: UnitSttsJobThread.run: {}", Thread.currentThread().getName());
  34. StopWatch stopWatch = new StopWatch();
  35. stopWatch.start();
  36. // TbSystUnit 정보 재로딩
  37. this.unitSystManager.reload();
  38. // ITS Unit Stts
  39. List<TbUnitSystSttsDto> itsUnitStts = this.unitSystService.findAllProcessUnitStts(true);
  40. ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("itsUnitStts", itsUnitStts);
  41. try {
  42. String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
  43. ItsWebSocketSessionManager.getInstance().sendBroadcastMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
  44. }
  45. catch(JsonProcessingException e){
  46. log.error("UnitSttsJobThread ItsFcltSttsDto Json parsing Exception: {}", itsUnitStts);
  47. }
  48. stopWatch.stop();
  49. long totalTimeMillis = stopWatch.getTotalTimeMillis();
  50. if (totalTimeMillis > 1000) {
  51. log.info("--END: UnitSttsJobThread.run: {}, {} ms.", Thread.currentThread().getName(), stopWatch.getTotalTimeMillis());
  52. }
  53. }
  54. }