美文网首页
springTask定时任务远程发送消息

springTask定时任务远程发送消息

作者: 鸿晕晕晕晕晕yyy | 来源:发表于2021-01-28 14:24 被阅读0次
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);
        }
    }
}

相关文章

网友评论

      本文标题:springTask定时任务远程发送消息

      本文链接:https://www.haomeiwen.com/subject/lgnttltx.html