春才刚到,忽而夏至——南方


前言

定时任务,相信很多人都用过吧?方法无非就是那几种而已,也有很多人写出了各式各样的框架,比如XXL-JOB

XXL-JOB出自大众点评,是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用

官方文档地址:点击此处访问官方文档

下载xxlJob

  • 源码仓库地址
  1. github地址 ,下载地址
  2. gitee地址,下载地址
  • 中央仓库地址
<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>${最新稳定版本}</version>
</dependency>
  • 运行环境:
  • Maven3+
  • Jdk1.8+
  • Mysql5.7+

部署

  • 下载项目源码并解压至自己电脑的项目文件夹下

  • 初始化数据库,数据库文件位于项目目录的doc/db下,如图所示:

  • 修改配置文件,文件位置:/xxl-job/xxl-job-admin/src/main/resources/application.properties

    需要修改配置文件中的数据库账号密码,填写报警邮箱等信息(如果你需要的话…)

  • 此时就可以点击xxl-job-admin模块的main方法进行运行,亦或者打包成jar使用cmd运行

访问地址:http://localhost:8080/xxl-job-admin,默认登录账号 “admin/123456”, 登录后运行界面如下图所示:

至此“调度中心”项目已经部署成功

使用

  • 新建springboot项目,步骤至此省略…如有不会请移步创建第一个SpringBoot项目

  • 引入 “xxl-job-core” 的maven依赖

  • 编写相关配置文件,文件参考地址:/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

    在自己的项目中根据自己的需要,写好相关配置,我就直接使用官方自带的示例代码了…

  • 配置配置文件,文件地址:/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
    即如下图所示:

  • 编写定时任务,如下所示是一个简单的定时任务,嗯…也是扒拉的官方源代码,代码就在controller下

@Component
public class SampleXxlJob {private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);/*** 1、简单任务示例(Bean模式)*/@XxlJob("demoJobHandler")public void demoJobHandler() throws Exception {XxlJobHelper.log("XXL-JOB, Hello World.");for (int i = 0; i < 5; i++) {XxlJobHelper.log("beat at:" + i);System.out.println(i);TimeUnit.SECONDS.sleep(2);}}
}
  • 启动项目
  • 在上面的调度中心配置我们的定时任务
  1. 新增执行器,即如下图所示,填入相关信息即可

  1. 新增任务,填入定时任务相关信息

注意:JobHandler参数与定时任务上@XxlJob(“demoJobHandler”)注解的名字要一致,不然找不到定时任务…

  1. 执行任务

如图所示,执行一次我们刚刚编写好的定时任务

控制台会出现如此打印即表示调用成功

  • 注意事项

关于传参的问题,在定时任务的创建和执行一次调用的时候都会有任务参数的填写,这就是我们需要传递到代码中的参数。

关于接收参数的问题,在2.3.0版本及其以上的参数接收发生了改变,用以下方式进行接收参数,且只能传递String类型,如果是其它类型参数,需要自己在代码中进行对应的转换

String param = XxlJobHelper.getJobParam();

结语

如今各种定时任务管理框架应运而生,我们管理定时任务也越来越简单,只需要简单的配置,简单的点击即可运行,甚至还有各种监控报警,邮件通知功能,再也不需要我们时刻关注了…

springboot整合XXL-JOB实行动态定时任务相关推荐

  1. SpringBoot 整合 Shiro Thymeleaf Mysql 动态授权

    文章目录 需求安排 一.前期准备 1. maven依赖 2. 创建数据库+初始化表数据 3. 实体类 4. mapper接口 5. mapper接口映射文件 6. service接口 7. servi ...

  2. SpringBoot整合多数据源,动态添加新数据源并切换(保姆级教程)

    前言 前段时间在项目的开发过程中,遇到了需要从数据库中动态查询新的数据源信息并切换到该数据源做相应的查询操作,翻阅了网上很多资料都是简单的对多数据源的整合,并没有涉及到动态添加新数据源并切换的案例,本 ...

  3. Springboot整合xxl-job实现任务自定义定时任务

    1.引入相关依赖 maven:<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job ...

  4. SpringBoot整合Drools规则引擎动态生成业务规则

    最近的项目中,使用的是flowable工作流来处理业务流程,但是在业务规则的配置中,是在代码中直接固定写死的,领导说这样不好,需要规则可以动态变化,可以通过页面去动态配置改变,所以就花了几天时间去研究 ...

  5. Mybatis最拿得出手的功能之一 SpringBoot整合Mybatis-Plus 实战之动态SQL

    MyBatis的动态SQL是最令人喜欢的功能 在了解 动态SQL之前,你首先得知道一个表达式 OGNL,这个是基础! 面试常问问题 : Mybatis 中$与#的区别? #是将传入的值当做字符串的形式 ...

  6. springboot和quartz整合实现动态定时任务(持久化单节点)

    Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...

  7. java quartz 动态执行,浅谈SpringBoot集成Quartz动态定时任务

    SpringBoot自带schedule 沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务 注意在程序启动的时候加上@EnableScheduling @Schedule ...

  8. SpringBoot整合Quartz执行持久化定时任务

    使用: 个人博客项目,定时刷新帖子排名用到了定时任务,在这里记录下来SpringBoot整合Quartz的基本使用,记录的同时也希望能帮助到大家. 1.什么是Quartz 官方介绍: Quartz是一 ...

  9. springboot整合webmagic动态爬取网页

    springboot整合webmagic爬取静态动态页面 1.查看google浏览器版本 2.下载对应的驱动 http://chromedriver.storage.googleapis.com/in ...

  10. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

最新文章

  1. scrolling=no 无法根据坐标获取元素_减少三坐标测量误差的正确测量方式
  2. 无废话-SQL Server 2005新功能(1) - TSQL
  3. java进销存一个人要做多久,如何取得当前年的时间! 找java进销存系统
  4. spring6:bean的生命始末方法
  5. 二次规划的一个很好的课件网站
  6. 2018-08-01-weekly
  7. Spring MVC 启动
  8. 服务器磁盘系统,服务器磁盘阵列与操作系统
  9. 41. 缺失的第一个正数 golang
  10. mac mysql的初始密码_MAC版修改MySQL初始密码的方法
  11. 假如一个程序员有社交牛逼症
  12. 「 博客迁移声明 」迫于想折腾个人博客
  13. 1078 最小生成树
  14. 关于STM32的jlink仿真器突然不能工作的解决方法
  15. 学习Android笔记
  16. 针对AirPods连接安卓手机时声音很小的解决方法
  17. 手机连接电脑服务器未响应怎么解决办法,电脑DNS服务器未响应怎么处理呢?
  18. AWS KVS(Kinesis Video Streams)之WebRTC的C库
  19. Echarts广东省福建省地图修正
  20. matlab pi表示,matlab中pi是什么意思

热门文章

  1. 网络的高可用性(一)
  2. 移动硬盘插入提示需要格式化RAW_分区变成RAW格式怎么办?
  3. 暑期开箱评测Wifi Pineapple(大菠萝)
  4. [每日一氵] Python以管理员权限运行程序
  5. 工业互联网,姓工,名互
  6. 『杭电1206』劲乐团
  7. 基于哈里斯鹰算法优化概率神经网络PNN的分类预测-附代码
  8. python图片爬虫,指定关键字爬取Google图片+搜狗图片
  9. 文本分析主要包含哪些技术,文本分析技术的发展方向是什么?
  10. trader vn 显示不全_一个VNPY 的“CTP:平昨仓位不足”问题的解决记录