1,引包
<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.4.1</version> </dependency>
2,增加配置类
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
// @Value("${xxl.job.executor.address}")
// private String address;
// @Value("${xxl.job.executor.ip}")
// private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
// xxlJobSpringExecutor.setAddress(address);
// xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
3,配置文件
xxl: job: admin: # xxl-job后台管理界面的地址 addresses: http://192.168.*.*:8080/xxl-job-admin executor: # 此执行器的名称 appname: xxl-sample # 此执行器的端口 port: 9998 # 此执行器的日志存放路径 logpath: /data/applogs/xxl-job/jobhandler # 此执行器的日志保存时间 logretentiondays: 7 accessToken: default_token
4,测试类
@Slf4j
@Component
@RequiredArgsConstructor
public class XxlJobTest {
@XxlJob("xxlJobTest")
public void xxlJobTest() {
log.info("---------xxlJobTest定时任务执行成功--------");
System.out.println("测试" );
}
}
5,注意点
开发时,有两个执行器在运行,第一个执行器中无有关代码,导致not found,可执行一次时指定执行器,也可修改配置文件,多个开发者使用不同执行器进行调试测试。
现象:
解决方案:
或