分布式任务平台XXL-JOB
参考:https://www.cnblogs.com/ysocean/p/10541151.html
码云:https://gitee.com/xuxueli0323/xxl-job
1、数据库导入 mysql版本5.7
2、修改调度中心配置文件
/xxl-job/xxl-job-admin/src/main/resources/application.properties
配置数据库的地址、用户名、密码
配置报警邮箱
该工程是一个springboot项目,
我们只需要在IDEA中执行 XxlJobAdminApplication 类即可运行该工程:
在浏览器输入 http://localhost:8080/xxl-job-admin
用户名密码admin 123456
3、执行器项目
springboot 版本的执行器为例来介绍
3.1 在创建好的springboot 项目的pom.xml 文件中添加如下依赖:
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.1.1-SNAPSHOT</version> </dependency>
3.2 在创建好的springboot 项目的配置文件 application.yml 添加如下配置:
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin ### xxl-job executor address xxl.job.executor.appname=xxl-job-executor-sample xxl.job.executor.ip= xxl.job.executor.port=9999 ### xxl-job, access token xxl.job.accessToken= ### xxl-job log path xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler ### xxl-job log retention days xxl.job.executor.logretentiondays=-1
有个BUG 添加配置解决
spring.freemarker.request-context-attribute=request
3.3
载入配置文件
在项目中创建 XxlJobConfig.java 文件:
创建任务JobHandler
在项目中创建一个Handler,用于执行我们想要执行的东西,这里我只是简单的打印一行日志:
XXL-JOB, Hello World!!!
import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.JobHandler; import com.xxl.job.core.log.XxlJobLogger; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; /** * 任务Handler示例(Bean模式) * * 开发步骤: * 1、继承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”; * 2、注册到Spring容器:添加“@Component”注解,被Spring容器扫描为Bean实例; * 3、注册到执行器工厂:添加“@JobHandler(value="自定义jobhandler名称")”注解,注解value值对应的是调度中心新建任务的JobHandler属性的值。 * 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志; * * @author xuxueli 2015-12-19 19:43:36 */ @JobHandler(value="demoJobHandler") @Component public class DemoJobHandler extends IJobHandler { @Override public ReturnT<String> execute(String param) throws Exception { XxlJobLogger.log("XXL-JOB, Hello World.愉快的跑起来了"); System.out.println("愉快的跑起来了"); for (int i = 0; i < 5; i++) { XxlJobLogger.log("beat at:" + i); TimeUnit.SECONDS.sleep(2); } return SUCCESS; } }
注意:这里有个注解 @JobHandler(value="demoJobHandler"),对于 value的值,我们会在下面进行相应配置。
4、进入调度中心
配置执行器
配置完执行器以及任务,我们只需要启动该任务,便可以运行了。
注意:在项目中,只有通过 XxlJobLogger.log() 代码才能将日志打印到上面。