学校网站班级网页建设制度,电力建设期刊网站经常维护吗,电脑软件推广联盟,最新提升关键词排名软件文章目录简介什么是xxl-job调度中心执行器官方架构图相关地址环境要求配置调度中心下载源码目录说明初始化数据库源码方式docker方式测试集群#xff08;可选#xff09;配置执行器pom.xmlapplication.propertiesXxlJobExecutorApplication.java执行器组件配置创建定时任务任…
文章目录简介什么是xxl-job调度中心执行器官方架构图相关地址环境要求配置调度中心下载源码目录说明初始化数据库源码方式docker方式测试集群可选配置执行器pom.xmlapplication.propertiesXxlJobExecutorApplication.java执行器组件配置创建定时任务任务管理简介注册执行器BEAN模式GLUE模式Java简介
接下来对分布式项目实现定时任务本操作要先完成前置步骤详情请参照【Spring Cloud Alibaba】Spring Cloud Alibaba 搭建教程
什么是xxl-job
xxl-job是一个分布式任务调度平台其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线开箱即用。
xxl-job主要分为两个部分第一部分为“调度中心“第二部分为“执行器项目”调度中心负责定时执行器负责执行任务。
调度中心
负责管理调度信息按照调度配置发出调度请求自身不承担业务代码。调度系统与任务解耦提高了系统可用性和稳定性同时调度系统性能不再受限于任务模块
支持可视化、简单且动态的管理调度信息包括任务新建更新删除GLUE开发和任务报警等所有上述操作都会实时生效同时支持监控调度结果以及执行日志支持执行器Failover。
调度中心项目xxl-job-admin
作用统一管理任务调度平台上调度任务负责触发调度执行并且提供任务管理平台。
执行器
负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作开发和维护更加简单和高效 接收“调度中心”的执行请求、终止请求和日志请求等。
执行器项目xxl-job-executor-sample-springboot (提供多种版本执行器供选择现以 springboot 版本为例可直接使用也可以参考其并将现有项目改造成执行器)
作用负责接收“调度中心”的调度并执行可直接部署执行器也可以将执行器集成到现有业务项目中。
官方架构图 相关地址
官网地址https://www.xuxueli.com/xxl-job/
源码地址
GithubGitee
官方教程点我 官方教程很详细想要深度学习的建议看本文很多都是参照官网文档的如果你只是想体验一下的话建议继续看下去如果你打算在项目中正式开始使用建议多看看官网教程。 环境要求
Maven3Jdk1.8Mysql5.7 注演示版本为2.4.0 配置调度中心
下载源码
打开源码地址建议国内用户访问Gitee下载比较快。
git clone https://gitee.com/xuxueli0323/xxl-job.git当前最新拉取的代码是v2.4.1切换到最新的发布版v2.4.0分支
cd xxl-job
git checkout 2.4.0大家可以根据自己的需要去选择版本也可以直接访问发布页面去下载对应版本
Girhub ReleasesGitee Releases
目录说明
解压源码源码结构如下
docdbtables_xxl_job.sql 初始化sql
xxl-job-admin调度中心
xxl-job-core公共依赖
xxl-job-executor-samples执行器Sample示例选择合适的版本执行器可直接使用也可以参考其并将现有项目改造成执行器xxl-job-executor-sample-springbootSpringboot版本通过Springboot管理执行器推荐这种方式xxl-job-executor-sample-frameless无框架版本初始化数据库
初始化sql文件在我们下载的源码以下目录/xxl-job/doc/db/tables_xxl_job.sql
调度中心支持集群部署集群情况下各节点务必连接同一个mysql实例;
如果mysql做主从,调度中心集群节点务必强制走主库; v2.4.0版本sql如下
#
# XXL-JOB v2.4.0
# Copyright (c) 2015-present, xuxueli.CREATE database if NOT EXISTS xxl_job default character set utf8mb4 collate utf8mb4_unicode_ci;
use xxl_job;SET NAMES utf8mb4;CREATE TABLE xxl_job_info (id int(11) NOT NULL AUTO_INCREMENT,job_group int(11) NOT NULL COMMENT 执行器主键ID,job_desc varchar(255) NOT NULL,add_time datetime DEFAULT NULL,update_time datetime DEFAULT NULL,author varchar(64) DEFAULT NULL COMMENT 作者,alarm_email varchar(255) DEFAULT NULL COMMENT 报警邮件,schedule_type varchar(50) NOT NULL DEFAULT NONE COMMENT 调度类型,schedule_conf varchar(128) DEFAULT NULL COMMENT 调度配置值含义取决于调度类型,misfire_strategy varchar(50) NOT NULL DEFAULT DO_NOTHING COMMENT 调度过期策略,executor_route_strategy varchar(50) DEFAULT NULL COMMENT 执行器路由策略,executor_handler varchar(255) DEFAULT NULL COMMENT 执行器任务handler,executor_param varchar(512) DEFAULT NULL COMMENT 执行器任务参数,executor_block_strategy varchar(50) DEFAULT NULL COMMENT 阻塞处理策略,executor_timeout int(11) NOT NULL DEFAULT 0 COMMENT 任务执行超时时间单位秒,executor_fail_retry_count int(11) NOT NULL DEFAULT 0 COMMENT 失败重试次数,glue_type varchar(50) NOT NULL COMMENT GLUE类型,glue_source mediumtext COMMENT GLUE源代码,glue_remark varchar(128) DEFAULT NULL COMMENT GLUE备注,glue_updatetime datetime DEFAULT NULL COMMENT GLUE更新时间,child_jobid varchar(255) DEFAULT NULL COMMENT 子任务ID多个逗号分隔,trigger_status tinyint(4) NOT NULL DEFAULT 0 COMMENT 调度状态0-停止1-运行,trigger_last_time bigint(13) NOT NULL DEFAULT 0 COMMENT 上次调度时间,trigger_next_time bigint(13) NOT NULL DEFAULT 0 COMMENT 下次调度时间,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_log (id bigint(20) NOT NULL AUTO_INCREMENT,job_group int(11) NOT NULL COMMENT 执行器主键ID,job_id int(11) NOT NULL COMMENT 任务主键ID,executor_address varchar(255) DEFAULT NULL COMMENT 执行器地址本次执行的地址,executor_handler varchar(255) DEFAULT NULL COMMENT 执行器任务handler,executor_param varchar(512) DEFAULT NULL COMMENT 执行器任务参数,executor_sharding_param varchar(20) DEFAULT NULL COMMENT 执行器任务分片参数格式如 1/2,executor_fail_retry_count int(11) NOT NULL DEFAULT 0 COMMENT 失败重试次数,trigger_time datetime DEFAULT NULL COMMENT 调度-时间,trigger_code int(11) NOT NULL COMMENT 调度-结果,trigger_msg text COMMENT 调度-日志,handle_time datetime DEFAULT NULL COMMENT 执行-时间,handle_code int(11) NOT NULL COMMENT 执行-状态,handle_msg text COMMENT 执行-日志,alarm_status tinyint(4) NOT NULL DEFAULT 0 COMMENT 告警状态0-默认、1-无需告警、2-告警成功、3-告警失败,PRIMARY KEY (id),KEY I_trigger_time (trigger_time),KEY I_handle_code (handle_code)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_log_report (id int(11) NOT NULL AUTO_INCREMENT,trigger_day datetime DEFAULT NULL COMMENT 调度-时间,running_count int(11) NOT NULL DEFAULT 0 COMMENT 运行中-日志数量,suc_count int(11) NOT NULL DEFAULT 0 COMMENT 执行成功-日志数量,fail_count int(11) NOT NULL DEFAULT 0 COMMENT 执行失败-日志数量,update_time datetime DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY i_trigger_day (trigger_day) USING BTREE
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_logglue (id int(11) NOT NULL AUTO_INCREMENT,job_id int(11) NOT NULL COMMENT 任务主键ID,glue_type varchar(50) DEFAULT NULL COMMENT GLUE类型,glue_source mediumtext COMMENT GLUE源代码,glue_remark varchar(128) NOT NULL COMMENT GLUE备注,add_time datetime DEFAULT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_registry (id int(11) NOT NULL AUTO_INCREMENT,registry_group varchar(50) NOT NULL,registry_key varchar(255) NOT NULL,registry_value varchar(255) NOT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id),KEY i_g_k_v (registry_group,registry_key,registry_value)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_group (id int(11) NOT NULL AUTO_INCREMENT,app_name varchar(64) NOT NULL COMMENT 执行器AppName,title varchar(12) NOT NULL COMMENT 执行器名称,address_type tinyint(4) NOT NULL DEFAULT 0 COMMENT 执行器地址类型0自动注册、1手动录入,address_list text COMMENT 执行器地址列表多地址逗号分隔,update_time datetime DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_user (id int(11) NOT NULL AUTO_INCREMENT,username varchar(50) NOT NULL COMMENT 账号,password varchar(50) NOT NULL COMMENT 密码,role tinyint(4) NOT NULL COMMENT 角色0-普通用户、1-管理员,permission varchar(255) DEFAULT NULL COMMENT 权限执行器ID列表多个逗号分割,PRIMARY KEY (id),UNIQUE KEY i_username (username) USING BTREE
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE xxl_job_lock (lock_name varchar(50) NOT NULL COMMENT 锁名称,PRIMARY KEY (lock_name)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;INSERT INTO xxl_job_group(id, app_name, title, address_type, address_list, update_time) VALUES (1, xxl-job-executor-sample, 示例执行器, 0, NULL, 2018-11-03 22:21:31 );
INSERT INTO xxl_job_info(id, job_group, job_desc, add_time, update_time, author, alarm_email, schedule_type, schedule_conf, misfire_strategy, executor_route_strategy, executor_handler, executor_param, executor_block_strategy, executor_timeout, executor_fail_retry_count, glue_type, glue_source, glue_remark, glue_updatetime, child_jobid) VALUES (1, 1, 测试任务1, 2018-11-03 22:21:31, 2018-11-03 22:21:31, XXL, , CRON, 0 0 0 * * ? *, DO_NOTHING, FIRST, demoJobHandler, , SERIAL_EXECUTION, 0, 0, BEAN, , GLUE代码初始化, 2018-11-03 22:21:31, );
INSERT INTO xxl_job_user(id, username, password, role, permission) VALUES (1, admin, e10adc3949ba59abbe56e057f20f883e, 1, NULL);
INSERT INTO xxl_job_lock ( lock_name) VALUES ( schedule_lock);
commit;在我们的数据库运行sql创建数据库
xxl_job_lock任务调度锁表xxl_job_group执行器信息表维护任务执行器信息xxl_job_info调度扩展信息表 用于保存XXL-JOB调度任务的扩展信息如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等xxl_job_log调度日志表 用于保存XXL-JOB任务调度的历史信息如调度结果、执行结果、调度入参、调度机器和执行器等等xxl_job_log_report调度日志报表用户存储XXL-JOB任务调度日志的报表调度中心报表功能页面会用到xxl_job_logglue任务GLUE日志用于保存GLUE更新历史用于支持GLUE的版本回溯功能xxl_job_registry执行器注册表维护在线的执行器和调度中心机器地址信息xxl_job_user系统用户表
源码方式
打包
mvn clean package运行
java -jar .\xxl-job-admin\target\xxl-job-admin-2.4.0.jar --server.port18010 --spring.datasource.urljdbc:mysql://172.16.92.230:3306/xxl_job?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueserverTimez
oneAsia/Shanghai --spring.datasource.usernameroot --spring.datasource.password123456 --xxl.job.accessTokenmoonce配置文件以及默认值 application.properties
### 调度中心JDBC链接链接地址请保持和所创建的调度数据库的地址一致
spring.datasource.urljdbc:mysql://127.0.0.1:3306/xxl_job?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueserverTimezoneAsia/Shanghai
spring.datasource.usernameroot
spring.datasource.passwordroot_pwd
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
### 报警邮箱
spring.mail.hostsmtp.qq.com
spring.mail.port25
spring.mail.usernamexxxqq.com
spring.mail.passwordxxx
spring.mail.properties.mail.smtp.authtrue
spring.mail.properties.mail.smtp.starttls.enabletrue
spring.mail.properties.mail.smtp.starttls.requiredtrue
spring.mail.properties.mail.smtp.socketFactory.classjavax.net.ssl.SSLSocketFactory
### 调度中心通讯TOKEN [选填]非空时启用
xxl.job.accessTokenmoonce
### 调度中心国际化配置 [必填] 默认为 zh_CN/中文简体, 可选范围为 zh_CN/中文简体, zh_TC/中文繁体 and en/英文
xxl.job.i18nzh_CN
## 调度线程池最大线程配置【必填】
xxl.job.triggerpool.fast.max200
xxl.job.triggerpool.slow.max100
### 调度中心日志表数据保存天数 [必填]过期日志自动清理限制大于等于7时生效否则, 如-1关闭自动清理功能
xxl.job.logretentiondays30docker方式
// Docker地址https://hub.docker.com/r/xuxueli/xxl-job-admin/ (建议指定版本号)
docker pull xuxueli/xxl-job-admin如需自定义 mysql 等配置可通过 “-e PARAMS” 指定参数格式 PARAMS--keyvalue --key2value2 配置项参考application.properties文件 如需自定义 JVM内存参数 等配置可通过 “-e JAVA_OPTS” 指定参数格式 JAVA_OPTS-Xmx512m
docker run -e PARAMS--spring.datasource.urljdbc:mysql://172.16.92.230:3306/xxl_job?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueserverTimezoneAsia/Shanghai --spring.datasource.usernameroot --spring.datasource.password123456 --xxl.job.accessTokenmoonce -p 18010:8080 -v E:/tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.4.0我这边已经拉取过镜像了如果第一次的话会提示并自动拉取镜像
测试
控制台输出启动成功
浏览器访问地址http://localhost:18010/xxl-job-admin (该地址执行器将会使用到作为回调地址)其中18010是我们启动时自定义 的端口号 默认账户密码admin / 123456
集群可选
调度中心支持集群部署提升调度系统容灾和可用性。
调度中心集群部署时几点要求和建议
DB配置保持一致集群机器时钟保持一致单机集群忽视 建议推荐通过nginx为调度中心集群做负载均衡分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。 配置执行器
新建子模块命名为moonce-xxl-job-executor
pom.xml
修改pom文件
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspring-cloud-alibaba/artifactIdgroupIdcom.moonce/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdmoonce-xxl-job-executor/artifactIdpropertiesjava.version1.8/java.version/propertiesdependencies!-- Spring Boot Begin --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-commons/artifactId/dependency!-- Spring Boot End --!-- Spring Cloud Begin --!-- Nacos 注册与发现 --
!-- dependency--
!-- groupIdcom.alibaba.cloud/groupId--
!-- artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId--
!-- /dependency--!-- Nacos 分布式配置中心 --
!-- dependency--
!-- groupIdcom.alibaba.cloud/groupId--
!-- artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId--
!-- /dependency--!-- Spring Cloud End--!-- xxl-job-core 定时任务公共依赖--dependencygroupIdcom.xuxueli/groupIdartifactIdxxl-job-core/artifactIdversion2.4.0/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationmainClasscom.moonce.xxl.job.executor.XxlJobExecutorApplication/mainClass/configuration/plugin/plugins/build/projectapplication.properties
# web port
server.port9080
### 调度中心部署根地址 [选填]如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行执行器心跳注册和任务结果回调为空则关闭自动注册
xxl.job.admin.addresseshttp://127.0.0.1:18010/xxl-job-admin
### 执行器通讯TOKEN [选填]非空时启用
xxl.job.accessTokenmoonce
### 执行器AppName [选填]执行器心跳注册分组依据为空则关闭自动注册
xxl.job.executor.appnamemoonce-xxl-job-executor
### 执行器注册 [选填]优先使用该配置作为注册地址为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
xxl.job.executor.address
### 执行器IP [选填]默认为空表示自动获取IP多网卡时可手动设置指定IP该IP不会绑定Host仅作为通讯实用地址信息用于 执行器注册 和 调度中心请求并触发任务
xxl.job.executor.ip
### 执行器端口号 [选填]小于等于0则自动获取默认端口为9999单机部署多个执行器时注意要配置不同执行器端口
xxl.job.executor.port9999
### 执行器运行日志文件存储磁盘路径 [选填] 需要对该路径拥有读写权限为空则使用默认路径
xxl.job.executor.logpath/data/applogs/xxl-job/jobhandler
### 执行器日志文件保存天数 [选填] 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能
xxl.job.executor.logretentiondays30XxlJobExecutorApplication.java
新建软件包com.moonce.xxl.job.executor和XxlJobExecutorApplication.java启动类
package com.moonce.xxl.job.executor;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication
//EnableDiscoveryClient
public class XxlJobExecutorApplication {public static void main(String[] args) {SpringApplication.run(XxlJobExecutorApplication.class, args);}}执行器组件配置
新建软件包com.moonce.xxl.job.executor.config和组件配置文件XxlJobConfig.java代码如下
XxlJobConfig.java
package com.moonce.xxl.job.executor.config;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.accessToken})private String accessToken;Value(${xxl.job.executor.appname})private String appname;Value(${xxl.job.executor.address})private String address;Value(${xxl.job.executor.ip})private String ip;Value(${xxl.job.executor.port})private int port;Value(${xxl.job.executor.logpath})private String logPath;Value(${xxl.job.executor.logretentiondays})private int logRetentionDays;Beanpublic XxlJobSpringExecutor xxlJobExecutor() {logger.info( xxl-job config init.);XxlJobSpringExecutor xxlJobSpringExecutor new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);xxlJobSpringExecutor.setAddress(address);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}}创建定时任务
任务管理简介
定时任务分为两种运行模式BEAN模式和GLUE模式其中GLUE模式又分别分为Java、Shell、Python、PHP、NodeJS和PowerShell模式我们主要介绍下BEAN模式和GLUE模式(Java)其他模式大家可以去看看官网文档调度中心配置中的配置属性详细说明
BEAN模式任务以JobHandler方式维护在执行器端需要结合 “JobHandler” 属性匹配执行器中任务GLUE模式(Java)任务以源码方式维护在调度中心该模式的任务实际上是一段继承自IJobHandler的Java类代码并 “groovy” 源码方式维护它在执行器项目中运行可使用Resource/Autowire注入执行器里中的其他服务
通俗点讲BEAN模式就是在执行器写好定时任务方法然后在调度中心配置方法的BEAN名称而GLUE模式就是直接在调度中心写代码然后在执行器中运行。
注册执行器
首先打开我们的调度中心http://localhost:18010/xxl-job-admin打开菜单执行器管理 点击新增填写执行器信息如图所示 保存完成 启动我们得执行器项目moonce-xxl-job-executor 我们再到执行器管理中查看执行器项目moonce-xxl-job-executor已成功注册
BEAN模式
Bean模式任务支持基于方法的开发方式每个任务对应一个方法。
优点
每个任务只需要开发一个方法并添加”XxlJob”注解即可更加方便、快速。支持自动扫描任务并注入到执行器容器。
缺点
要求Spring容器环境
在执行器项目moonce-xxl-job-executor中新建软件包com.moonce.xxl.job.executor.service.jobhandler和执行器类TestXxlJob.java内容如下 基于方法开发的任务底层会生成JobHandler代理和基于类的方式一样任务也会以JobHandler的形式存在于执行器任务容器中。 TestXxlJob.java
package com.moonce.xxl.job.executor.service.jobhandler;import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;import java.util.concurrent.TimeUnit;Component
public class TestXxlJob {/*** 1、任务开发在Spring Bean实例中开发Job方法* 2、注解配置为Job方法添加注解 XxlJob(value自定义jobhandler名称, init JobHandler初始化方法, destroy JobHandler销毁方法)注解value值对应的是调度中心新建任务的JobHandler属性的值。* 3、执行日志需要通过 XxlJobHelper.log 打印执行日志* 4、任务结果默认任务结果为 成功 状态不需要主动设置如有诉求比如设置任务结果为失败可以通过 XxlJobHelper.handleFail/handleSuccess 自主设置任务结果* * throws Exception*/XxlJob(testJobHandler)public void demoJobHandler() throws Exception {XxlJobHelper.log(XXL-JOB, Hello World.);for (int i 0; i 5; i) {XxlJobHelper.log(beat at: i);TimeUnit.SECONDS.sleep(2);}// default success}
}重新启动执行器项目moonce-xxl-job-executor访问调度中心找到任务管理 选择新增内容如下 点击保存默认是停止状态的我们可以先测试一次 查看执行日志
成功执行 我们再来看看是不是输出了我们预期的结果 输出与我们预期一致
更多详细用法大家可以看源码中的xxl-job-executor-sample-springboot项目参考类com.xxl.job.executor.service.jobhandler.SampleXxlJob 主要如下
demoJobHandler简单示例任务任务内部模拟耗时任务逻辑用户可在线体验Rolling Log等功能shardingJobHandler分片示例任务任务内部模拟处理分片参数可参考熟悉分片任务httpJobHandler通用HTTP任务Handler业务方只需要提供HTTP链接等信息即可不限制语言、平台。示例任务入参如下url: http://www.xxx.com
method: get 或 post
data: post-datacommandJobHandler通用命令行任务Handler业务方只需要提供命令行即可如 “pwd”命令
GLUE模式Java
任务以源码方式维护在调度中心支持通过Web IDE在线更新实时编译和生效因此不需要指定JobHandler。
访问调度中心找到任务管理新建任务内容如下 保存后选择GLUE IDE进行代码在线编辑
选中指定任务点击该任务右侧“GLUE”按钮将会前往GLUE任务的Web IDE界面在该界面支持对任务代码进行开发也可以在IDE中开发完成后复制粘贴到编辑中。
版本回溯功能支持30个版本的版本回溯在GLUE任务的Web IDE界面选择右上角下拉框“版本回溯”会列出该GLUE的更新历史选择相应版本即可显示该版本代码保存后GLUE代码即回退到对应的历史版本
完成编辑保存返回列表选择执行一次
查看执行日志