xxl-job调度任务简单使⽤
1. 简介
XXL-JOB是⼀个分布式任务调度平台,其核⼼设计⽬标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接⼊多家公司线上产品线,开箱即⽤。
2. 使⽤步骤1:源码下载
数据库脚本再源码/xxl-job/doc/db/tables_xxl_job.sql
3.调度中⼼项⽬:xxl-job-admin
修改配置⽂件中的数据库地址或端⼝
/xxl-job/xxl-job-admin/src/main/resources/application.properties
4.启动xxl-job-admin⼯程
访问地址为:
账号/密码 admin/123456
5.⾄此,xxl-job服务启动完成,接下来将xxl植⼊到所要添加定时任务的⼯程中
此次测试我使⽤的是:2.3.0版本
<!-- /maven2/com/xuxueli/xxl-job-core/ -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version>
</dependency>
6.修改⼯程的yml⽂件,引⼊xxl配置
#引⼊xxl-job
xxl:
job:
admin:
# 调度中⼼部署跟地址 [选填]:如调度中⼼集部署存在多个地址则⽤逗号分隔。
# 执⾏器将会使⽤该地址进⾏"执⾏器⼼跳注册"和"任务结果回调";为空则关闭⾃动注册;
addresses: localhost:8080/xxl-job-admin
executor:
# 执⾏器AppName [选填]:执⾏器⼼跳注册分组依据;为空则关闭⾃动注册
appname: springcloudalibaba-user-experience-job
# 执⾏器IP [选填]:默认为空表⽰⾃动获取IP,多⽹卡时可⼿动设置指定IP,该IP不会绑定Host仅作为通讯实⽤;
# address: 192.168.2.29:9191
# 地址信息⽤于 "执⾏器注册" 和 "调度中⼼请求并触发任务";
# ip: 192.168.2.29
# 执⾏器运⾏⽇志⽂件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使⽤默认路径;
logpath: ./logs/xxl-job
# 执⾏器⽇志⽂件保存天数 [选填] :过期⽇志⾃动清理, 限制值⼤于等于3时⽣效; 否则, 如-1, 关闭⾃动清理功能;
logretentiondays: 30
# 执⾏器端⼝号 [选填]:⼩于等于0则⾃动获取;默认端⼝为9999,
# 单机部署多个执⾏器时,注意要配置不同执⾏器端⼝;
port: 9192
# 执⾏器通讯TOKEN [选填]:⾮空时启⽤;
# accessToken:
7.添加config配置⽂件
xecutor.impl.XxlJobSpringExecutor;
slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import t.annotation.Bean;
import t.annotation.Configuration;
import t.annotation.Profile;
/**
* xxl-job config
*
* @author
* @date 2020/11/23
*/
@Slf4j
@Configuration
@Profile("!dev")
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${utor.appname}")
private String appName;
/*@Value("${utor.address}")
private String address;
@Value("${utor.ip}")
private String ip;*/
@Value("${utor.port}")
private int port;
@Value("${utor.logpath}")
private String logPath;
@Value("${utor.logretentiondays}")
private int logRetentionDays;
/**
spring framework版本查看* 注意:如果想本机调试,需要设置address、ip
* @return
*/
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
//xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setPort(port);
//xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
8.执⾏器管理--》添加执⾏器
添加完成后,可以点击查看详情
9.再代码中创建定时任务
import com.alibaba.fastjson.JSONObject;
ontext.XxlJobHelper;
handler.annotation.XxlJob;
slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
import java.util.Date;
@Slf4j
@Component
public class UserJob1 implements InitializingBean {
/**
* 定时同步发任务结果
*
* @return
*/
@XxlJob("xxlJobTest")
public String execute() {
log.info("start userTodoJob, time at:" + new Date());
String params = JobParam();
JSONObject jsonObject = JSONObject.parseObject(params);
Integer orgId = Integer("orgId");
String corpId = String("corpId");
System.out.println("执⾏了"+params);
return "执⾏了";
}
@Override
public void afterPropertiesSet() throws Exception {
log.info("Combination Job init suc at: " + new Date());
}
}
10.任务管理中添加新的任务
添加完成后,可再后⾯对该任务进⾏操作
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论