前言
作为一名计算机工作者,总觉着自己可以改变生活,改变自己的一些行为方式。偶然的一个契机看到高德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.简单看眼内部封装
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);">&</font>
将整个命令放到后台执行。
5.XXL-JOB配置定时任务
登录服务后记得观测执行器的在线情况,如无执行器记得自行添加下,之后再验证在线。配置相关执行器,根据自己接口的开发情况,配置合适的时间即可: