前言

作为一名计算机工作者,总觉着自己可以改变生活,改变自己的一些行为方式。偶然的一个契机看到高德API,这里可以做一个天气预报来方便出行。说干就干!

准备

项目准备:基于XXL-JOB体系完成天气的定时获取,基于PushPlus完成消息推送至微信,基于高德地图API完成天气的提供。

一、高德API

[高德开放平台 | 高德地图API](https://lbs.amap.com/)

在这里注册申请一个key即可,绑定服务使用web服务

注意基于高德地图的天气开发,大体流程分为2步,先传入对应的城市信息获取城市编码表,然后基于城市编码获取对应天气(实时/三日)。其实如果自己资源容量足够的话,拉取到本地一份城市编码表进行维护也是个不错选择,我这里就开发接口来使用了。

二、PushPlus

[登录|pushplus(推送加)-微信消息推送平台](https://www.pushplus.plus/login.html?backUrl=https://www.pushplus.plus/)

这个平台可以让我们基于各种端进行推送操作,免费用户的话有每天200次的消息量(公众号)。这里如果你要作为推送的话,记得先注册一个账户,然后进行实名即可。让订阅者通过绑定你给予的二维码可以进行渠道拆分,从而完成不同的任务。

三、XXL-JOB

xxl-job作为Java传统的定时任务框架,上手简单,开发容易。此次选用XXL-JOB替换掉了我原有服务器中部署的青龙面板,在青龙面板上开发需要继续编写py脚本,这里就回到老本行啦。

开干!

1.项目初始化

由于不需要接口调用,基于XXL-JOB进行定时任务推送即可,这里就不需要controller了,直接开发jobhandler,将不同API开发至不同的job,同时保留好相应的枚举和实体,做好配置,该抽取的抽取,保持编码习惯。

2.简单看眼内部封装

![](https://img.picui.cn/free/2025/02/26/67bee88f6d3cd.png)

3.项目打包

这里作为一个抓娃工程师,肯定选取Maven工具,简单进行package一下就好。

4.项目部署启动

这里借助FinallShell工具把jar包放到指定位置,留好log的包位置,记得赋予权限
chmod -R 777 [文件]
1

然后通过后台启动,日志正常打印,不然关掉当前窗口服务随之挂掉

nohup java -jar siliconflow-0.0.1-SNAPSHOT.jar > lxxl-job-executor-sample-springboot.log 2>&1 &
1
  • 使用<font style="color:rgb(27, 28, 33);">nohup</font>确保即使关闭终端,Java应用程序也会继续运行。
  • 通过<font style="color:rgb(27, 28, 33);">java -jar</font>命令启动名为<font style="color:rgb(27, 28, 33);">siliconflow-0.0.1-SNAPSHOT.jar</font>的Java应用程序。
  • 将标准输出和标准错误都重定向到<font style="color:rgb(27, 28, 33);">llxxl-job-executor-sample-springboot.log</font>文件中。
  • 使用 <font style="color:rgb(27, 28, 33);">&amp;</font> 将整个命令放到后台执行。

5.XXL-JOB配置定时任务

登录服务后记得观测执行器的在线情况,如无执行器记得自行添加下,之后再验证在线。

配置相关执行器,根据自己接口的开发情况,配置合适的时间即可:

完结撒花

项目效果:

1.先来个城市预报目录

![](https://img.picui.cn/free/2025/02/26/67bee94602f13.png)

2.看天气效果

![](https://img.picui.cn/free/2025/02/26/67bee982eb68f.png)