相关博文连接:https://blog.csdn.net/jzx937345232/article/details/99292049

由于之前一直使用的是Quartz实现定时任务,本次项目中使用了xxl-job,之前没有接触过,就上网了解了下,入门还是比较简单,很快可以上手。

xxl-job 定时任务分析:

XXL-JOB是一个轻量级分布式任务调度平台,调度采用中心式设计,“调度中心”基于集群Quartz实现并支持集群部署。任务分布式执行,任务"执行器"支持集群部署。

xxl-job 设计分两个模块 调度模块 , 执行模块(执行器)

调度模块 : 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统
执行模块:  负责接收调度请求并执行任务逻辑.

所有展示案例全部采用springboot

xxl-job github 地址:https://github.com/xuxueli/xxl-job  将项目拉下来 后面调度模块要用到

xxl-job 学习文档:http://www.xuxueli.com/xxl-job

一:相关依赖

 <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.2.0</version></dependency>

相关配置:

3. 上面配置好之后,就可以访问xxl-job的web端页面了,地址就是上面的address地址   用户名和密码:默认是 admin   123456

其中配置文件中appname必须和【执行器管理】中的appname保持一致,然后给个名字:schedule-job(随意起名称),如下图:

4.配置类展示XxlJobConfig.java

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class XxlJobConfig {private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);@Value("${xxl.job.admin.addresses}")private String adminAddresses;@Value("${xxl.job.executor.appname}")private String appName;@Value("${xxl.job.executor.ip}")private String ip;@Value("${xxl.job.executor.port}")private String port;@Value("${xxl.job.accessToken}")private String accessToken;@Value("${xxl.job.executor.logpath}")private String logPath;@Value("${xxl.job.executor.logretentiondays}")private int logRetentionDays;@Bean(initMethod = "start", destroyMethod = "destroy")public XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppName(appName);
//        xxlJobSpringExecutor.setIp(ip);
//        xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}/*** 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;**      1、引入依赖:*          <dependency>*             <groupId>org.springframework.cloud</groupId>*             <artifactId>spring-cloud-commons</artifactId>*             <version>${version}</version>*         </dependency>**      2、配置文件,或者容器启动变量*          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'**      3、获取IP*          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();*/}

5.写个测试类(定时任务),并在【任务管理】中新增一个任务,本例用的是bean模式(方法),新增执行器名称选择上步添加执行器的时候随意起的名称,JobHandler就是@xxljob()中的value值,本例中就是

testJobHandler

@Component
public class TestTask  {@XxlJob("testJobHandler")public ReturnT<String> demoJobHandler(String param) throws Exception {XxlJobLogger.log("XXL-JOB, Hello World.");System.out.println("zxxxx");XxlJobLogger.log("XXL-JOB, Hello World end.");return  ReturnT.SUCCESS;}}

至此,简单的配置就好了,要想深入的学习可以去官网: http://www.xuxueli.com/xxl-job

总结:

bean模式分两种:一种是类上面,使用@JobHandler(value = "testJobHandler")           一种是方法上@XxlJob("testJobHandler")

xxl-job 定时任务简单使用相关推荐

  1. celery定时任务简单使用

    celery介绍 Celery 是一个强大的分布式任务队列,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务( async task )和定时任务( cr ...

  2. php解析定时任务格式,php 实现定时任务简单实现

    php 实现定时任务简单实现 通常情况下实现定时计划任务有以下几种方式: linux下可以借助crontab+php的方式(Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个 ...

  3. 利用PHP实现定时任务,利用php 实现定时任务简单实现 代码

    linux下可以借助crontab+php的方式(Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序 ) windows 下有两种方式: 借助于vbscript脚本 ...

  4. Quartz 手动更新定时任务简单实现

    最近项目中因为要连接许多硬件设备,硬件服务于我们的server服务是通过socket进行通信,本来有一个默认的定时器策略,于硬件交换数据, 现在有这么一个需求,需要人工维护  server和硬件通信的 ...

  5. SpringBoot定时任务简单应用

    SpringBoot定时任务可以用于周期性重复工作的编写,其应用简单,能满足绝大多数需求.在Java中实现定时任务主要有三种实现形式:一是使用JDK 自带的 Timer,二是使用第三方组件 Quart ...

  6. mysql定时任务简单例子

    如果要每30秒执行以下语句: update userinfo set endtime = now() WHERE id = '110'; 可以给mysql建个定时任务,具体方法如下: delimite ...

  7. java 国际化例子_JavaSE 国际化 简单例子

    ①在src下添加两个文件: base_zh_CN.properties Test=\u8fd9\u662f\u4e2d\u6587 base_en_US.properties Test=english ...

  8. 小白成长之路-linux定时任务cron和crontab

    Linux定时任务 一.为啥要学习定时任务 在我们现实生活中处处可以用到定时任务. 如: 亲爱的,2020年4月1号会上映一部动画片电影我们去看看啊. 明天上午老师要看论文了 我作业还没写,明天早上上 ...

  9. java timertask 定时_Java定时任务--Timer和TimerTask

    1.程序和编程 我们知道,计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具. 简单来说程序在本质上是指令的集合,而编程从字面上来讲就是编写这些指令集合(程序) ...

最新文章

  1. 如何只在IE上加载CSS样式表
  2. 专访:经历了时间检验的不仅是论文,还有唐杰自己 | SIGKDD 2020时间检验奖
  3. 关于Android adb实现框架和应用
  4. WSAGetLastError:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断 的解决
  5. 电池充放电中的C5A 的意义
  6. BeetleX.Http.Clients访问https服务
  7. 川大计算机文化基础在线作业,川大1309《计算机文化基础0008》在线作业2答案.docx...
  8. 拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
  9. java的反射和它的类加载机制
  10. php7 curl开源库,7个适用于PHP的最佳Curl包装器库
  11. 51单片机编程软件keil4的安装过程
  12. 腾讯音乐12月初赴美IPO,250亿美元被低估还是高估?
  13. yolov3安卓实现_Android—yolov3目标检测移植
  14. 【技术类】2019校招技术类岗位面经汇总
  15. 嗨!亲爱的朋友们,欢迎您光临我的…
  16. 【GRNN情绪识别】基于GRNN神经网络的情绪识别算法matlab仿真
  17. 重装win10遇到的坑
  18. 为什么打印还要另存为_为什么打印时会出现另存为保存文件
  19. iptables的三表五链
  20. Google巧妙发布Sky星空地图

热门文章

  1. 常见的希腊字母的读法
  2. python中screen用法_screen命令的使用
  3. 安卓android BMI体质指数测试项目
  4. Linux桌面版实现复制,Linux-No.05 scp实现不同电脑间进行文件复制
  5. Unity初级教程贪吃蛇实现(Snake)带工程源码
  6. t3普及版选择服务器后未响应,T3普及版11.0在新建帐套或者修改账套时 经常出现 未响应状态 请问怎么处理...
  7. C++复习之路24:计算机网络相关4:
  8. frog——2017科技趋势预测
  9. Python3-Flask-微信公众号开发-3
  10. 微信小程序云开发上传word文档到云存储器