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定时任务远程发送消息
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、 首先配置QQ邮箱->设置->账户->开启服务POP3/SMTP开启->获取授权码qqyouxiang.png...
- 1.artisan命令: php artisan make:command SendRejectEmail 2.a...
- 关于laravel发送邮件,请先参考我的另一片文章:laravel sendcloud发送邮件,再继续往下看。 1...