springTask定时任务远程发送消息
2021-01-28 本文已影响0人
鸿晕晕晕晕晕yyy
package com.shys.iiot.rzp.equipment.config;
import com.alibaba.fastjson.JSONObject;
import com.shys.iiot.rzp.equipment.fixRepairOrder.service.FixRepairOrderService;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
/**
* @author shihy
* @date 2021/1/28 12:02
* @description
*/
@Component
public class ScheduleJob {
@Autowired
private FixRepairOrderService fixRepairOrderService;
@Autowired
private RestTemplate restTemplate;
private static org.slf4j.Logger logger = LoggerFactory.getLogger(ScheduleJob.class);
/**
*
* @param userId
* @param userName
* @param title
* @param msg
* @param toUsers
* @param extData
* @return 返回http请求实体
*/
public HttpEntity<String> getRequestEntity(String userId, String userName, String title, String msg, String toUsers, Map<String,String> extData){
JSONObject fromUser = new JSONObject();
fromUser.put("userId", userId);
fromUser.put("userName", userName);
JSONObject sendInfo = new JSONObject();
sendInfo.put("title", title);
sendInfo.put("fromUser", fromUser);
sendInfo.put("msg", msg);
sendInfo.put("toUsers", toUsers);
sendInfo.put("extData", extData);
HttpHeaders headers = new HttpHeaders();
String jsonString = sendInfo.toJSONString();
headers.add("Accept", "*/*");
headers.add("Accpet-Encoding", "gzip");
headers.add("Content-Encoding", "UTF-8");
headers.add("Content-Type", "application/json");
headers.add("Content-Length", String.valueOf(jsonString.getBytes().length));
HttpEntity<String> requestEntity = new HttpEntity<String>(jsonString, headers);
return requestEntity;
}
/**
* 推送报修单
* 2分钟推送一次
*/
@Scheduled(fixedDelay = 120000)
public void sendRepairReportInfo() {
try {
if (IpAddress.getLocalHostLANAddress().toString().contains("10.1.6.24")) {
logger.info("推送报修单");
Map<String, String> extData = fixRepairOrderService.getSendRepairInfo();
HttpEntity<String> requestEntity = this.getRequestEntity("1", "admin", "设备报修单", "设备报修单", "4", extData);
String jsonReturnInfo = restTemplate.postForObject("http://10.1.6.24:9533/appPush", requestEntity, String.class);
logger.info(jsonReturnInfo);
}
}catch (Exception e){
e.printStackTrace();
logger.error("推送失败",e);
}
}
}