xxl-job安装与使用
官网
gitee
xxl-job\doc\db
下有一个sql语句,在本地数据库运行
http://127.0.0.1:8080/xxl-job-admin/
账号admin 密码123456执行器
- 创建一个springboot项目,引入xxl-core
com.xuxueli xxl-job-core 2.3.0 - 配置执行器
-
配置文件
# 调度中心地址 xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin # app名称 xxl.job.executor.appname=xxl-job-executor-sample1
-
配置xxljob执行器
package cn.jaminye.xxljobdemo.config; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author Jamin * @date 2021/6/23 17:22 */ @Configuration public class XxlJobConfig { @Value("${xxl.job.admin.addresses}") private String adminAdresses; @Value("${xxl.job.executor.appname}") private String appname; @Bean public XxlJobSpringExecutor xxlJobSpringExecutor() { XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAdresses); xxlJobSpringExecutor.setAppname(appname); return xxlJobSpringExecutor; } }
-
修改启动类
package cn.jaminye.xxljobdemo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import java.util.concurrent.CountDownLatch; @SpringBootApplication public class XxlJobDemoApplication { public static void main(String[] args) throws InterruptedException { SpringApplication.run(XxlJobDemoApplication.class, args); //让程序不结束 new CountDownLatch(1).await(); } }
-
执行器配置
- 打开调度中心
- 选择执行器管理
- 添加,AppName输入执行器配配置的AppName
- 启动执行,可以从控制台看到注册成功,以及调度中心online机器地址(没有配置主机ip会自动获取,ip默认为9999)
-
创建任务
- 这里创建一个简单的执行器
package cn.jaminye.xxljobdemo.service; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; /** * @author Jamin * @date 2021/6/23 17:26 */ @Component public class SampleXxlJob { @XxlJob("demoJobHandler") public void demoJobHandler() throws InterruptedException { Logger logger = LoggerFactory.getLogger(SampleXxlJob.class); //控制台日志 logger.info("123"); // 执行日志 XxlJobHelper.log("123"); Thread.sleep(2000); } }
- 任务配置
主要配置cron表达式(这里测试使用1秒钟1次)与JobHandler(XxlJob注解中的值)
点击调度日志,可查看执行结果,调度时间与执行时间,可以看到它是实时调度,但执行等上一个执行完成才执行
查看控制台可以看到代码中控制台打印的日志,在执行日志中可以看到xxl打印的日志
- 这里创建一个简单的执行器
-