不废话了,直接上代码
1.引入jar
compile ‘com.xuxueli:xxl-job-core:2.2.0’
一个坑,客户端一定要和server端版本保持一致,我有3个小时浪费在这了,2.2.0server,2.1.0client,怎么都无法注册上去
2.任务代码
public class TestJobHandler {
@XxlJob(value = "TestJobHandler")
public ReturnT<String> execute(String param){
XxlJobLogger.log("XXL-JOB, Hello World.");
System.out.println("------------------------------------");
return ReturnT.SUCCESS;
}
}
这快没什么坑,唯一需要注意的就是@XxlJob(value = “TestJobHandler”)中的value值要和调度器管理中的值一致,看官方文档就好
3.bean注入
这时可能有人在想,配置文件呢?嗯哼,现在来了
grails跟springboot不一样,无法使用@Bean和@Configcation注解,目前我只知道下列这种注入方法
还有一点要注意,上边创建的TestJobHandler,也需要注入bean,同样通过下列方法注入
beans = {
xxlJobExecutor(XxlJobSpringExecutor){
adminAddresses = "http://192.168.1.100:8080/xxl-job-admin"
appname = "xxl-job-executor-sample"
logPath = "./logs/xxljob/"
}
testJobHandler(TestJobHandler)
}
testJobHandler(TestJobHandler)
括号左边的名称可以随便写,别重复就好,右边是上边创建的那个类
xxlJobExecutor中,可以使用环境判断,或者创建一个ConfigUtil获取当前环境的配置文件,来解决配置文件写死的问题
就这么简单?
没错,就这么简单。
启动后看看你的管理后台有么有注册成功,有没有执行任务吧
有人使用这个方法不行?那试试注解额方式
1. 创建注册类
@Component
public class XxlJobConfig {
@Bean(initMethod = "start", destroyMethod = "destroy")
public XxlJobSpringExecutor xxlJobExecutor() {
System.out.println(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setLogPath(logPath);
return xxlJobSpringExecutor;
}
}
2.在Application上添加注解@ComponentScan(XxlJobConfig.class, basePackage=“com.xxx.xxx”)
XxlJobConfig.class 对应上边创建的类名
com.xxx.xxx对应XxlJobConfig.class的报名
@ComponentScan(XxlJobConfig.class, basePackage="com.xxx.xxx")
class Application extends GrailsAutoConfiguration {
static void main(String[] args) {
GrailsApp.run(Application, args)
}
}