XXL-JOB(2)-使用
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占用了两个端口号。
- 调度中心启动
- 执行器注册到调度中心
通过启动执行器项目,把配置的执行器ip和执行器端口注册到调度中心,执行器可以有多个执行节点,注册地址:xxl-job-admin项目的api相关接口。如下图所示。
会利用netty 开启一个server, port: 9999,该server执行任务处理bean。
还会开启有一个ExecutorRegistryThread线程,不断地注册自己
- 在调度中心配置执行器的任务
- 手动/定时执行任务,
XXL-JOB(2)-使用相关推荐
- xxl子任务_阿里面试官:聊一下分布式任务调度有那些解决方案?
作者:黄兆平 来源:http://blog.freshfood.cn/article/39 # 简介 随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务 ...
- 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 ...
- Moorhuhn Kart 2 XXL Maps
Moorhuhn Kart 2 XXL 的全部八张地图图片,感觉跟以前打CS官方绘制的俯视地图有些类似 下载地址:/Files/boringlamb/Maps.rar 转载于:https://www. ...
- Xxl Job Helloworld
刚到新公司不久,新公司使用分布式任务调度平台是 xxl-job.其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.当然它的特性在 它的官网 描述得非 ...
- 调度器 XXL(X)和 Dolphin(D)的对比
XXL(X)和 Dolphin(D)的对比 1.定位:X是一个轻量级分布式的任务调度框架:D是解决数据处理流程中错综复杂的依赖关系的框架.2.可视化流程定义:x:无,可配置任务级联触发;D:有,所有流 ...
- 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 ...
- 浅析 ant design vue 中 xs sm md lg xl xxl
含义 参照 Bootstrap 的 响应式设计,预设六个响应尺寸:xs sm md lg xl xxl. 具体解释 xs extra Small 超小 sm small 小 md medium 中等的 ...
- 震惊! XXL 社区即将解散 20 个交流群!
[ XXL 社区] 成立于 2015 年,是专门为支持开源软件项目而创办的一个非盈利性组织,负责发行和维护 XXL 系列开源软件,崇尚开放.自由和分享. 截至目前,XXL 社区已经孵化出多个流行开源产 ...
- 记录一下执行xxl定时任务超时导致线程池RejectedExecutionException
记录线程池打满异常 使用xxl-job进行分布式任务调度的坑, 由于优惠券到期提醒定时任务 系统会每天9点去查询提前一天过期的优惠券,当xxl-job执行任务时 调用对应服务的excute方法超时,当 ...
- com.xxl.rpc.util.XxlRpcException: java.lang.IllegalStateException: failed to create a child event lo
Caused by: java.io.IOException: 打开的文件过多 生产上已经调整了linux的最大句柄数为65535 但是运行时间长或是xxl-admin重启有什么变动的情况下我们就会出 ...
最新文章
- 获取线程中抛出的异常信息
- 4大工业物联网网络的实施战略
- python设计抽奖游戏 球_python3实现小球转动抽奖小游戏
- Jackson 读写 JSON
- java数组元素相加_数组元素相加
- HDLBits答案(2)_Verilog向量基础
- 更新 绑定数据_Blazor 修仙之旅 组件与数据绑定
- JavaScript设计模式(一)-- 简单工厂模式
- linux进程和线程理解
- java 采集上下滚屏_关于java游戏滚屏的问题!(如何实现)!
- Access新手到高手视频教程 109讲
- 如何批量新建文件夹并命名
- pp模块常用表 sap_SAP财务常用的PP模块事务代码清单
- java pandora_Pandora FMS监视简介
- Excel VBA 免密查看VBE加密代码
- Python学习笔记(二)(图灵学院)
- 这是我见过最接地气的PCB设计指南了!
- 郭锡良古代汉语复习重点总结
- 西门子博图PLC程序无法下载到PLCSIM
- 利用vlan交换机(网管交换机)打trunk实现单线复用