xxl-job给出了springboot集合xxljob的执行器demo,例如:xxl-job-executor-sample-springboot,
以xxl-job-executor-sample-springboot项目中的配置为例,可以写自己的执行器项目。
这里以xxl-job-executor-sample-springboot项目为例,梳理下springboot整合xxljob。

执行器服务配置(xxl-job-executor-sample-springboot)

<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.3.0</version>
</dependency>

application.properties

# web port
server.port=8083
# no web
#spring.main.web-environment=false
# log config
logging.config=classpath:logback.xml
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
### 任务调度中心地址
xxl.job.admin.addresses=http://10.211.55.6:8082/xxl-job-admin
### xxl-job, access token
xxl.job.accessToken=
### xxl-job executor appname
xxl.job.executor.appname=xxl-job-executor-sample
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
### 执行器的ip
xxl.job.executor.ip=10.211.55.6
### 执行器的端口号
xxl.job.executor.port=9999
### xxl-job executor log-path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30

XxljobConfig.java

package com.xxl.job.executor.core.config;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;@Beanpublic 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;}
}

任务处理类

@Slf4j
@Component
public class SampleXxlJob {private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);/*** 1、简单任务示例(Bean模式)*/@XxlJob("demoJobHandler")public void demoJobHandler() throws Exception {String param = XxlJobHelper.getJobParam();logger.info("\ndemoJobHandler {}", param);XxlJobHelper.log("XXL-JOB, Hello World.");for (int i = 0; i < 5; i++) {XxlJobHelper.log("beat at:" + i);TimeUnit.SECONDS.sleep(2);}// default success}
}

启动执行器服务,查看日志,

13:00:37.261 logback [Thread-5] INFO  com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9999
[root@10-211-55-6 executor]# netstat -auntpl|grep 9999
tcp6       0      0 :::9999                 :::*                    LISTEN      2220952/java
[root@10-211-55-6 executor]# ps -ef | grep 2220952
root     2220952    6557  0 13:00 pts/2    00:00:09 java -jar xxl-job-executor-sample-springboot-2.3.0.jar
root     2341368  341594  0 13:55 pts/4    00:00:00 grep --color=auto 2220952
[root@10-211-55-6 executor]# netstat -auntpl|grep 8083
tcp6       0      0 :::8083                 :::*                    LISTEN      2220952/java
[root@10-211-55-6 executor]# ps -ef | grep 2220952

查看9999/8083端口号可以看出,执行器xxl-job-executor-sample-springboot占用了两个端口号。

  1. 调度中心启动
  2. 执行器注册到调度中心
    通过启动执行器项目,把配置的执行器ip和执行器端口注册到调度中心,执行器可以有多个执行节点,注册地址:xxl-job-admin项目的api相关接口。如下图所示。

会利用netty 开启一个server, port: 9999,该server执行任务处理bean。
还会开启有一个ExecutorRegistryThread线程,不断地注册自己

  1. 在调度中心配置执行器的任务

  1. 手动/定时执行任务,

XXL-JOB(2)-使用相关推荐

  1. xxl子任务_阿里面试官:聊一下分布式任务调度有那些解决方案?

    作者:黄兆平 来源:http://blog.freshfood.cn/article/39 # 简介 随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务 ...

  2. s l m 尺码排序 php,m l xl xxl是什么意思?服装尺码s m l xl xxl含义

    S/M/L/XL/XXL尺寸详解   (衣服上的S M L XL XXL XXXL) 男装:(相关尺码对应的身高.胸围.腰围) 尺码 XXS XS S M L XL 身高(cm) 155 160 16 ...

  3. Moorhuhn Kart 2 XXL Maps

    Moorhuhn Kart 2 XXL 的全部八张地图图片,感觉跟以前打CS官方绘制的俯视地图有些类似 下载地址:/Files/boringlamb/Maps.rar 转载于:https://www. ...

  4. Xxl Job Helloworld

    刚到新公司不久,新公司使用分布式任务调度平台是 xxl-job.其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.当然它的特性在 它的官网 描述得非 ...

  5. 调度器 XXL(X)和 Dolphin(D)的对比

    XXL(X)和 Dolphin(D)的对比 1.定位:X是一个轻量级分布式的任务调度框架:D是解决数据处理流程中错综复杂的依赖关系的框架.2.可视化流程定义:x:无,可配置任务级联触发;D:有,所有流 ...

  6. XXL-JOB配置迁移到Nacos Could not resolve placeholder ‘xxl.job.accessToken’ in value “${xxl.job.accessToke

    1.加双引号("") xxl:job: admin: addresses: http://127.0.0.1:8080/xxl-job-adminaccessToken: &quo ...

  7. 浅析 ant design vue 中 xs sm md lg xl xxl

    含义 参照 Bootstrap 的 响应式设计,预设六个响应尺寸:xs sm md lg xl xxl. 具体解释 xs extra Small 超小 sm small 小 md medium 中等的 ...

  8. 震惊! XXL 社区即将解散 20 个交流群!

    [ XXL 社区] 成立于 2015 年,是专门为支持开源软件项目而创办的一个非盈利性组织,负责发行和维护 XXL 系列开源软件,崇尚开放.自由和分享. 截至目前,XXL 社区已经孵化出多个流行开源产 ...

  9. 记录一下执行xxl定时任务超时导致线程池RejectedExecutionException

    记录线程池打满异常 使用xxl-job进行分布式任务调度的坑, 由于优惠券到期提醒定时任务 系统会每天9点去查询提前一天过期的优惠券,当xxl-job执行任务时 调用对应服务的excute方法超时,当 ...

  10. com.xxl.rpc.util.XxlRpcException: java.lang.IllegalStateException: failed to create a child event lo

    Caused by: java.io.IOException: 打开的文件过多 生产上已经调整了linux的最大句柄数为65535 但是运行时间长或是xxl-admin重启有什么变动的情况下我们就会出 ...

最新文章

  1. 获取线程中抛出的异常信息
  2. 4大工业物联网网络的实施战略
  3. python设计抽奖游戏 球_python3实现小球转动抽奖小游戏
  4. Jackson 读写 JSON
  5. java数组元素相加_数组元素相加
  6. HDLBits答案(2)_Verilog向量基础
  7. 更新 绑定数据_Blazor 修仙之旅 组件与数据绑定
  8. JavaScript设计模式(一)-- 简单工厂模式
  9. linux进程和线程理解
  10. java 采集上下滚屏_关于java游戏滚屏的问题!(如何实现)!
  11. Access新手到高手视频教程 109讲
  12. 如何批量新建文件夹并命名
  13. pp模块常用表 sap_SAP财务常用的PP模块事务代码清单
  14. java pandora_Pandora FMS监视简介
  15. Excel VBA 免密查看VBE加密代码
  16. Python学习笔记(二)(图灵学院)
  17. 这是我见过最接地气的PCB设计指南了!
  18. 郭锡良古代汉语复习重点总结
  19. 西门子博图PLC程序无法下载到PLCSIM
  20. 利用vlan交换机(网管交换机)打trunk实现单线复用

热门文章

  1. 认识多种处理芯片的特性和实战(上篇)
  2. SEO人员,一定要为首页进行排名吗?
  3. 23种设计模式都适用于哪些场景?
  4. python小程序模板——阿龙的小百宝箱
  5. java数组初始化0_Java自学-数组 初始化数组
  6. DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》课程讲解之项目管理概述、项目管理基本基础知识、项目立项管理相关知识
  7. 扫码枪回车键条码_条码扫描枪怎么设置换行?
  8. html字体颜色渐变
  9. 一首同音叠字诗“石室诗士施氏”
  10. java 解析器_高性能Java解析器实现过程详解