XxlJob+钉钉机器人实现天气提醒

(1).分布式任务调度平台XXL-JOB
https://gitee.com/xuxueli0323/xxl-job

源码结构:
xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
    :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
    :xxl-job-executor-sample-frameless:无框架版本;

环境:
Maven3+
Jdk1.8+
Mysql5.7+

1.clone源码,切换到稳定分支版本如2.3.0
执行SQL初始化数据库:/xxl-job/doc/db/tables_xxl_job.sql

2.调度中心
修改调度中心配置文件:
/xxl-job/xxl-job-admin/src/main/resources/application.properties

打包部署:java -jar xxx.jar

调度中心访问地址:http://localhost:8080/xxl-job-admin
默认登录账号 “admin/1234563.配置部署“执行器项目”
参考:xxl-job-executor-sample-springboot
坑:集成了xxl-job的项目的配置文件中appname要与xxl-job调度中心中创建的执行器的appname一致才会自动注册

(2)获取天气
心知天气:https://www.seniverse.com/
获取24小时天气(属于付费功能,测试有使用期限):见心知天气文档

/**
 * 1、简单任务示例(Bean模式)
 */
@XxlJob("demoJobHandler")
public void demoJobHandler() throws Exception {
   
    String apiUrl = "https://api.seniverse.com/v3/weather/hourly.json?key=Sh1W6lkmjYY23qPkE&location=hangzhou&language=zh-Hans&unit=c&start=0&hours=24";
    Object results = JSONObject.parseObject(HttpClientUtils.sendGet(apiUrl)).get("results");
    JSONObject objects = JSONObject.parseArray(results.toString()).getJSONObject(0);
    JSONArray hourly = JSONObject.parseArray(objects.get("hourly").toString());
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < hourly.size(); i++) {
   
        Object time = JSONObject.parseObject(hourly.get(i).toString()).get("time");
        Object text = JSONObject.parseObject(hourly.get(i).toString()).get("text");
        Object temperature = JSONObject.parseObject(hourly.get(i).toString()).get("temperature");
        time = time.toString().split("T")[1].split("\\+")[0].substring(0, 

你可能感兴趣的:(Java,Java)