公司用了XXL-JOB,发现用这个公司好多,而且的确特别好用,记录一下。
公司项目用的spring+springMVC+mybatis,所以和官方操作有些不一样。
0.公司项目为voucherjob
1.引入maven
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>1.9.2</version>
</dependency>
2.applicationContext.xml
<!-- 读取配置文件 -->
<context:property-placeholder location="classpath:xxl-job-executor.properties"/>
<!-- 执行器 -->
<bean id="xxlJobExecutor" class="com.xxl.job.core.executor.XxlJobExecutor" init-method="start" destroy-method="destroy" >
<!-- 执行器注册中心地址[选填],为空则关闭自动注册 -->
<property name="adminAddresses" value="${xxl.job.admin.addresses}" />
<!-- 执行器AppName[选填],为空则关闭自动注册 -->
<property name="appName" value="${xxl.job.executor.appname}" />
<!-- 执行器IP[选填],为空则自动获取 -->
<property name="ip" value="${xxl.job.executor.ip}" />
<!-- 执行器端口号[选填],小于等于0则自动获取 -->
<property name="port" value="${xxl.job.executor.port}" />
<!-- 访问令牌[选填],非空则进行匹配校验 -->
<property name="accessToken" value="${xxl.job.accessToken}" />
<!-- 执行器日志路径[选填],为空则使用默认路径 -->
<property name="logPath" value="${xxl.job.executor.logpath}" />
<!-- 日志保存天数[选填],值大于3时生效 -->
<property name="logRetentionDays" value="${xxl.job.executor.logretentiondays}" />
</bean>
3.xxl-job-executor.properties
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=${job.admin.addresses}
### xxl-job executor address
xxl.job.executor.appname=${job.executor.appname}
xxl.job.executor.ip=
xxl.job.executor.port=${job.executor.port}
### xxl-job, access token
xxl.job.accessToken=
### xxl-job log path
xxl.job.executor.logpath=${job.executor.logpat}
### xxl-job log retention days
xxl.job.executor.logretentiondays=${job.executor.logretentiondays}
4.class,所有类都继承IJobHandler,实现execute方法,用@Component注入spring容器,用@JobHandler指明job的名称,
@Component
@JobHandler(value = "HelloJob")
public class HelloJob extends IJobHandler {
@Override
public ReturnT<String> execute(String s) throws Exception {
System.out.println(11);
return SUCCESS;
}
}
5.另外新启动xxl-job-admin项目,该项目地址:https://github.com/xuxueli/xxl-job/tree/master/xxl-job-admin,下载后改变数据库配置
6.打开xxl-job-admin,地址为之前配置的 job.admin.addresses
7.在里面新建一个job,名字为HelloJob,设置cron时间,就可以看到启动了
8.注意,先启动xxl-job-admin,再启动自己的项目去注册