首先声明,本篇博文基于springboot,基于spring的请自行研究。

(一)启动控制平台

首先将xxl-job-master.zip下载下来,然后在mysql数据库创建xxl-job数据库。

执行数据库:

用tomcat启动xxl-job-admin以后,打开页面:http://localhost:8081/xxl-job-admin/(用户名:admin 密码:123456)

然后在页面上创建执行器和任务。

(二)创建执行器

第一步:创建maven项目

第二步:修改pom.xml文件,加入如下:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<!-- jetty -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-io</artifactId>
</dependency>
<!-- spring-boot-starter-web (spring-webmvc + tomcat) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>1.9.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
</plugin>
</plugins>
</build>

第三步:在resources目录下添加application.properties和logback.xml

# web port
server.port=8084 # log config
logging.config=classpath:logback.xml # xxl-job
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8081/xxl-job-admin ### xxl-job executor address
xxl.job.executor.appname=ececutor01
xxl.job.executor.ip=10.1.1.23
xxl.job.executor.port=9999 ### xxl-job log path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler/ ### xxl-job, access token
xxl.job.accessToken=
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds"> <contextName>logback</contextName>
<property name="log.path" value="/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log"/> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter" >
<level>WARN</level>
</filter>-->
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender> <root level="info">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root> <!--<logger name="com.xxl.job.executor.service.info" level="WARN" additivity="false">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</logger>--> </configuration>

接着,按照如下创建包和类:

XxlJobConfig:

package com.jump.config;

import com.xxl.job.core.executor.XxlJobExecutor;
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.ComponentScan;
import org.springframework.context.annotation.Configuration; /**
*
*/
@Configuration
@ComponentScan(basePackages = "com.xxl.job.executor.service.jobhandler")
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); @Value("${xxl.job.admin.addresses}")
private String addresses; @Value("${xxl.job.executor.appname}")
private String appname; @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.accessToken}")
private String accessToken; @Bean(initMethod = "start", destroyMethod = "destroy")
public XxlJobExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobExecutor xxlJobExecutor = new XxlJobExecutor();
xxlJobExecutor.setIp(ip);
xxlJobExecutor.setPort(port);
xxlJobExecutor.setAppName(appname);
xxlJobExecutor.setAdminAddresses(addresses);
xxlJobExecutor.setLogPath(logpath);
xxlJobExecutor.setAccessToken(accessToken);
return xxlJobExecutor;
} }

MyJobHandler:

package com.jump.handler;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHander;
import com.xxl.job.core.log.XxlJobLogger; /**
* @author Jump
* @version 创建时间:2019年1月22日 下午1:25:13 类说明
*/
@JobHander(value = "myJobHandler")
@Service
public class MyJobHandler extends IJobHandler {
@Value("${xxl.job.executor.port}")
private String port; @Override
public ReturnT<String> execute(String... params) throws Exception {
XxlJobLogger.log("XXL-JOB, Hello World." + port);
System.out.println("XXL-JOB, Hello World." + port);
for (int i = 0; i < 5; i++) {
XxlJobLogger.log("beat at:" + i);
// TimeUnit.SECONDS.sleep(2);
}
return ReturnT.SUCCESS;
} }

App:

package com.jump;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
* @author Jump
* @version 创建时间:2019年1月22日 下午1:27:28 类说明
*/
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

然后右键run,就能开启任务执行器。

最新文章

  1. php无限分类
  2. shujuk
  3. IOS 关于开发的APP跳转第三方应用的心得
  4. sublime 中文乱码
  5. Aoite 系列(03) - 一起来 Redis 吧!
  6. Linux网卡的相关配置总结
  7. c# 读取嵌入式文件
  8. java的nio之:java的nio系列教程之SocketChannel
  9. 访问public
  10. 自定义WM_NOTIFY消息
  11. Linux常用命令之grep
  12. int main(int argc,char* argv[]) 简单理解
  13. 【无聊放个模板系列】HDU 1358 KMP
  14. C++第三课(2013.10.03 )
  15. [LeetCode]Palindrome Partitioning 找出所有可能的组合回文
  16. 通过linux的iso镜像安装(RPM)扩展工具包
  17. shell编程规范:引用
  18. MyBatis:自定义Mapper
  19. 字符串转化为int数组
  20. IOS初级:NSTimer

热门文章

  1. [Bayes] Parameter estimation by Sampling
  2. linux dd指令
  3. android 中 webview 怎么用 localStorage? 我在 android里面 使用html5的 localStorage 为什么存不进去也读不出来呀? 网上搜了好多都没效果
  4. amcharts去除版权标志
  5. np.mgird np.ogrid
  6. IBM flex system P260
  7. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}
  8. .net webservice的get支持,
  9. cadence xbl封装转AD
  10. 基于pygame的一个小游戏