首先感谢所有关注我的朋友,在此我将作出承诺:作者之前的所有文章不收费,将来发表的所有文章也永久免费。包括:订阅号、CSDN、知乎.......等。
同时我也非常感激我们一起学习,一起成长的伙伴们,是你们的激励让我不断成长。
看过我之前文章的朋友们可能会发现这次的文章标题好像和之前的一样,难道要再写一次不成?
根据很多朋友反馈,上次那篇文章讲的不错(看到评论我真的很开心),就是可惜没有源码。所以我非常感激"韩某"、"蒋某某"、"张某某"、"old程序员"以及"我很菜"、"tsdy"......等等,有了他们的鼓励支持,更让我添加了几分信心,所以必须满足广大朋友的需求。
废话不多说,直接来硬菜。
还是以"micro-app"项目为例,增加子模块(定时器的微服务),如下图:(如何新建模块,大家可在"架构序列一"中学习)
新建如下:
然后完善task-api:
增加配置类及接口层:
以上是为了集群可配置界面做准备,最重要的步骤来了:
那到底如何使用定时任务来实现自己的业务呢?请看下图:
定时调度集群共11张表,表如下:
记得在数据库中执行这些表哦~
所有该准备的咱们都准备好了,该启动服务啦~
服务启动后咱们开始验证:
增加任务job
很明显哈,5秒跑一次:
已经成功了~
我们查询下list
已经完全没问题了,至此大家的定时任务已经跑起来了,其他接口我就不一一展示了。
下面我把所有的接口及参数发出来哈:
获取list集合:
post接口:http://127.0.0.1:8003/micro-task-api/task/queryJobList
增加定时任务:
post接口:http://127.0.0.1:8003/micro-task-api/task/addJob
参数:
{
"jobName":"com.laifeiyang.dev.micro.task.job.TestJob",
"jobGroup":"testGroup",
"jobDescription":"测试",
"jobStatus":"0",
"cronExpression":"*/5 * * * * ?"
}
修改定时任务:
post接口:http://127.0.0.1:8003/micro-task-api/task/editJob
参数:
{
"jobName":"com.laifeiyang.dev.micro.task.job.TestJob",
"jobGroup":"testGroup",
"jobDescription":"测试",
"jobStatus":"0",
"cronExpression":"*/10 * * * * ?"
}
删除定时任务:
post接口:http://127.0.0.1:8003/micro-task-api/task/deleteJob
参数:
{
"jobName":"com.laifeiyang.dev.micro.task.job.TestJob",
"jobGroup":"testGroup"
}
暂停定时任务:
post接口:http://127.0.0.1:8003/micro-task-api/task/pauseJob
参数:
{
"jobName":"com.laifeiyang.dev.micro.task.job.TestJob",
"jobGroup":"testGroup"
}
恢复定时任务:
post接口:http://127.0.0.1:8003/micro-task-api/task/resumeJob
参数:
{
"jobName":"com.laifeiyang.dev.micro.task.job.TestJob",
"jobGroup":"testGroup"
}
大家会用了吗?如有不清楚的地方请联系作者,一定帮助大家玩转quartz集群。对了此微服务可搭建1~N台机器或N个节点,只需要调用其中的一个节点的接口即可。
整套架构初步规划包含技能点:
springcloud、springboot、mybatis、分环境打包、mybatis-plus、动态数据源、druid、增删改查一键生成、gateway网关、feign的使用、熔断机制、如何防止雪崩、分布式+集群、注册中心:zookeeper+zkui和nacos、一个项目如何进行zk和nacos同时使用、动态配置:一个配置,所有集群节点共同热点使用、quartz集群
获取源码:https://github.com/feeyanna/FlyingCoding.git
详细请关注作者订阅号查看相关内容: