老项目用的xxl-job 2.2

SpringBoot整合XXL-JOB XXL-JOB是一个开源的分布式任务调度平台,它能够帮助开发者简化定时任务的管理和执行。本文将指导你如何将XXL-JOB集成到Spring Boot项目中,以便管理和调度定时任务。通过以上步骤,你已经成功将XXL-JOB集成到Spring Boot项目中,并创建了一个简单的任务处理器。XXL-JOB提供了强大的任务调度功能,能够帮助你高效地管理和执行定时任务。随着你对XXL-JOB的深入了解,你还可以探索其更多高级特性和配置。 阅读详情

一、2.2.0 版本官方支持情况

核心事实:
XXL-Job 在 2.3.0 之前未提供官方管理客户端,2.2.0 版本需直接调用其 REST API 进行任务管理。但可通过以下方案实现:


二、2.2.0 兼容方案

方案 1:直接 HTTP API 调用(推荐)
// 1. 登录认证获取Cookie
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost loginRequest = new HttpPost("http://xxl-job-admin:8080/xxl-job-admin/login");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("userName", "admin"));
params.add(new BasicNameValuePair("password", "123456"));
loginRequest.setEntity(new UrlEncodedFormEntity(params));

try (CloseableHttpResponse response = httpClient.execute(loginRequest)) {
    // 保存Cookie用于后续请求
    String cookie = response.getFirstHeader("Set-Cookie").getValue();
  
    // 2. 创建任务
    HttpPost createRequest = new HttpPost("http://xxl-job-admin:8080/xxl-job-admin/jobinfo/add");
    createRequest.setHeader("Cookie", cookie);
  
    JSONObject jobJson = new JSONObject();
    jobJson.put("jobGroup", 2);            // 执行器ID
    jobJson.put("jobDesc", "数据备份任务");
    jobJson.put("scheduleType", "CRON");
    jobJson.put("scheduleConf", "0 0 2 * * ?");
    jobJson.put("glueType", "BEAN");
    jobJson.put("executorHandler", "backupHandler");
    jobJson.put("author", "DBA");
  
    createRequest.setEntity(new StringEntity(jobJson.toString(), ContentType.APPLICATION_JSON));
    httpClient.execute(createRequest);  // 创建任务
  
    // 3. 删除任务 (需要jobId)
    HttpPost deleteRequest = new HttpPost("http://xxl-job-admin:8080/xxl-job-admin/jobinfo/remove");
    deleteRequest.setHeader("Cookie", cookie);
    List<NameValuePair> delParams = new ArrayList<>();
    delParams.add(new BasicNameValuePair("id", "123")); // 任务ID
    deleteRequest.setEntity(new UrlEncodedFormEntity(delParams));
    httpClient.execute(deleteRequest);
}
方案 2:封装简易客户端
public class XxlJobClientV2 {
    private final String adminUrl;
    private String authCookie;

    public XxlJobClientV2(String adminUrl, String username, String password) throws IOException {
        this.adminUrl = adminUrl;
        this.authCookie = login(username, password);
    }
  
    private String login(String user, String pass) throws IOException {
        // 登录逻辑(同方案1)
        return "XXL_JOB_LOGIN_IDENTITY=..."; 
    }
  
    public int createJob(JobInfo job) throws IOException {
        HttpPost request = new HttpPost(adminUrl + "/jobinfo/add");
        request.setHeader("Cookie", authCookie);
        // 设置JSON参数...
        return parseJobIdFromResponse(executeRequest(request));
    }
  
    public void deleteJob(int jobId) throws IOException {
        HttpPost request = new HttpPost(adminUrl + "/jobinfo/remove");
        request.setHeader("Cookie", authCookie);
        request.setEntity(new UrlEncodedFormEntity(
            Collections.singletonList(new BasicNameValuePair("id", String.valueOf(jobId)))
        );
        executeRequest(request);
    }
  
    // 其他操作封装...
}

三、2.2.0 核心 API 列表

功能方法路径参数格式
登录POST/loginform-urlencoded
添加任务POST/jobinfo/addJSON
更新任务POST/jobinfo/updateJSON
删除任务POST/jobinfo/removeform-urlencoded
启动任务POST/jobinfo/startform-urlencoded
停止任务POST/jobinfo/stopform-urlencoded
触发执行POST/jobinfo/triggerform-urlencoded
任务列表POST/jobinfo/pageListJSON
执行日志POST/joblog/pageListJSON

四、关键参数说明(2.2.0)

任务创建 JSON 结构:
{
  "jobGroup": 2,                 // 执行器ID(必填)
  "jobDesc": "订单超时处理",      // 任务描述
  "scheduleType": "CRON",        // 调度类型: CRON/FIX_RATE
  "scheduleConf": "0 0/5 * * * ?", // cron表达式
  "glueType": "BEAN",            // 模式: BEAN/GLUE_GROOVY等
  "executorHandler": "orderTimeoutHandler", // Bean模式标识
  "executorParam": "",           // 任务参数
  "executorRouteStrategy": "FIRST", // 路由策略
  "misfireStrategy": "DO_NOTHING", // 调度过期策略
  "author": "TechTeam",          // 负责人
  "alarmEmail": "alert@company.com" // 报警邮箱
}
分页查询参数:
{
  "start": 0,                    // 起始位置
  "length": 10,                  // 每页数量
  "jobGroup": 2,                 // 执行器ID
  "triggerStatus": -1,           // 状态: -1=全部, 0=停止, 1=运行
  "jobDesc": "",                 // 任务描述过滤
  "executorHandler": ""          // 执行器Handler过滤
}

五、2.2.0 特有注意事项

  1. Cookie 有效期问题:
       2.2.0 会话有效期固定 30 分钟,需实现会话刷新:
       java    // 每次请求前检查会话    if (isSessionExpired()) {        this.authCookie = login(username, password);    }    

  2. 参数差异:
       相比 2.4.0,2.2.0 缺少以下字段:
       - glueUpdatetime (GLUE更新时间)
       - childJobId (子任务ID)
       - executorTimeout (任务超时时间)

  3. 执行器注册方式:
       2.2.0 需要手动在管理界面添加执行器,不支持自动注册


六、升级建议

如果条件允许,强烈建议升级到 2.4.0+,主要优势:

+ 官方管理客户端支持
+ 动态执行器注册
+ OpenAPI 安全认证
+ 更完善的监控指标
+ 任务分片广播优化
- 需要兼容旧任务配置

版本迁移提示:
如同将蒸汽机车升级为高铁 - 2.2.0 如同可靠的蒸汽动力系统,能完成基本运输;而 2.4.0+ 则是现代化高速铁路,提供更强大的调度能力和安全保障。迁移时需注意:

  1. 备份 /data/applogs/xxl-job/ 目录
  2. 逐条验证旧任务配置
  3. 使用 xxl-job-migration-tool 进行配置转移
  4. 新版本采用 accessToken 替代基础认证
XXL-JOB 2.2.0 分布式任务调度平台部署教程 部署工具是将软件应用从开发环境迁移到生产环境的关键一环。在复杂的IT架构中,自动化部署工具能够减少人为错误,提高部署效率,保证部署流程的一致性。在现代敏捷开发和持续集成/持续部署(CI/CD)环境中,部署工具的作用更加凸显。 阅读详情

相关推荐

xxl-job-2.2.0.zip

xxl-job-2.2.0源码

分布式任务调度框架xxljob2.2.0详细安装使用教程

centos8安装配置xxljob2.2.0简介概述特性总体设计源码目录介绍“调度数据库”配置架构设计设计思想系统组成架构图安装环境创建目录下载解压 简介 概述 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 特性 简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手。 动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效。 调度中心HA(中心式):调度采用中心式设计,“调度

weixin_44798288的博客 8235

XXL-JOB金仓版

XXL-JOB 任务调度中心,由原来的mysql数据库改为了金仓数据库,其他地方无改动。

XXLJOB从2.2.0升级到2.4.0步骤

XXL-JOB服务从2.2.0版本升级到2.4.0版本实践步骤。

于大宝子和小野丫头 3850

Valeo近场数据集:多模态行人意图检测技术解析

行人意图检测是智能驾驶系统的关键技术,通过分析行人运动轨迹预测其行为意图。传统方法受限于单传感器数据,难以应对复杂场景。多模态融合技术结合视觉、LiDAR和惯性测量数据,显著提升检测精度。Valeo近场数据集(VNF)创新性地采用鱼眼相机、多LiDAR和动作捕捉系统,实现3D姿态与意图标签的精准对齐。该数据集支持开发距离自适应的行人感知算法,在ADAS防碰撞、智能迎宾等场景具有重要应用价值。关键技术包括传感器同步、3D姿态重建和时空图卷积网络,为行业提供了标准化评估基准。

weixin_30566111的博客 660

别再手动写ZPL了!用C#和斑马官方SDK搞定ZT410 RFID打印机(附中文乱码解决方案)

本文详细介绍了如何使用C#和斑马官方SDK驱动ZT410 RFID打印机,解决中文乱码和RFID数据写入等常见问题。通过实战指南,开发者可以快速掌握从基础连接到高级调试的全流程,提升打印效率和可靠性。特别适用于物流、零售和资产管理领域的应用。

weixin_29267307的博客 226

xxl-job 2.2.0

前言: 什么是定时任务? 希望代码在未来的时间里,按照一定的规律执行。 类似于闹钟的开发,希望每天早上7点叫我起床。 如果你的系统不进行分布式部署,仅仅是单机部署 目前我们的定时任务如何写的: 定时调度器与业务代码共存 @Cron(" * * 1 * * ?") public void fun (){ //.......... code ..... } 部署后的运行方式如下图 整个系统调度与执行在一起,单系统部署不存在问题,能够保证定时任务在指定的调度时间被执行一次。 ...

绚烂的天空 1171

STM32-DAC定时器触发三角波生成【频率与幅度精准控制】

本文详细介绍了STM32 DAC定时器触发三角波生成的原理与实现方法,涵盖硬件配置、频率与幅度精准控制技巧及代码实现。通过定时器触发DAC模块,可灵活调节三角波的频率和幅度,适用于信号发生器等高精度应用场景。

weixin_29161785的博客 454

Docker-compose搭建xxl-job(并配置Python3环境xxl-job执行器)

【保姆级教程】Docker-compose搭建xxl-job(python3环境的xxl-job执行器), xxl-job python3 执行器

yqyn6的博客 4167

告别Link180!在Ansys Mechanical 2020R2中正确启用Cable280绳索单元(附Beta选项开启指南)

本文详细介绍了在Ansys Mechanical 2020R2中启用Cable280绳索单元的全过程,包括Beta选项的开启步骤、建模技巧及高阶应用。Cable280作为专为绳索仿真设计的单元,相比传统的Link180单元,在大变形模拟和计算效率上表现更优,特别适合斜拉桥、电梯牵引绳等工程场景。

weixin_33711647的博客 406

Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)

nexus3旧版本OrientDB升级H2,及整体迁移nexus3数据到其它服务器。

葫芦娃 5557

xxl-job任务调度2.0.2升级到2.3.0版本,执行器改造过程中经验总结

xxl-job任务调度版本升级

weixin_43860634的博客 3101

VN1630A硬件配置指南:手把手教你用CanApe搭建XCP标定工程(附ELF文件配置技巧)

本文详细介绍了如何使用VN1630A硬件和CanApe软件搭建XCP标定工程,包括硬件配置、CanApe工程创建、ELF文件处理及XCP协议层配置等关键步骤。特别针对实际项目中常见的错误和细节问题提供解决方案,帮助工程师高效完成ECU参数标定工作。

git9versioner的博客 1160

XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JOB中的核心概念、集群环境下任务的路由策略)

XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JOB中的核心概念、集群环境下任务的路由策略)

聂可以的博客 1万+

从零到英雄:如何用FPGA和AD9288打造你的第一台便携式示波器

本文详细介绍了如何利用FPGA和AD9288 ADC芯片从零开始打造一台高性能便携式示波器。通过硬件架构设计、高速数据采集系统实现及信号处理与显示系统的开发,读者可以掌握400Msps采样率的实现方法,并了解关键器件选型与系统优化技巧。

jjj34的博客 279

汽车IVI中控开发入门及进阶(九):显示屏

显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。

码农17年的博客 2527

【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

XXL-JOB是一个分布式任务调度平台,用于解决大规模分布式任务调度问题。它基于Java语言开发,提供了轻量级、易扩展的任务调度和管理功能。

仰望天空,妳我亦是行人. 2176

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SpringBoot整合Xxl-Job

这样就表示Xxl-Job成功运行了。确保运行没问题后,就可以开始下一步。注意:在运行之前,需要把2的sql脚本执行完毕,并修改数据库连接池。可以不用eureka,这里我的项目中用到eureka所以增加该配置。第三、确实非常容易上手且轻量化(轻量化的一个体现就是非侵入式)第一、团队里有好几个人上一家公司或上上家公司用过。第二、这个生态比较丰富且开源。用户名默认为admin。

林知屿的博客 5966

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

xxl-job

​ XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。

luosuss的博客 2665

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

xxl-job接入springboot项目

xxl-job接入springboot项目

UuuuuuDie的博客 2197

项目终于用上了xxl-job,好起来了!

这就是本次 xxl-job 实战的全部内容了,写这篇文章主要是为了记录一下项目中是如何使用 xxl-job 的,并且提供一种分片广播均分任务的思路以及幂等性问题如何处理,具体使用 xxl-job 还需根据自己项目的需求,遇到问题可以参考官网。

sjkflw121150的博客 1669

【XXL-JOB】用XXL-JOB灵活的发布定时周期任务

XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,360金融 (360),联想集团 (联想),易信 (网易)等等系统架构图设计思想将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。

Carefree_State的博客 3312

Xxl-job 一文读懂

数据备份订单未支付则自动取消定时爬取数据定时推送信息定时发布文章定时生成报表定时任务是指基于给定的时间点,间隔或者给定执行次数自动的执行程序。任务调度室系统的重要组成部分,而对于实时的系统,任务调度直接影响着系统的实时性。任务调度涉及多线程并发、运行时间规则定制与解析、线程池的维护等多项工作。application.properties 配置文件详解### web 服务端口及其项目名称### actuator 健康检查### resources 静态资源配置。

zhouzhiwengang的专栏 7202

【xxl-job】本地部署并接入xxl-job到项目中

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。通常任务调度的程序是集成在应用中的,比如:优惠卷服务中包括了定时发放优惠卷的的调度程序,结算服务中包括了定期生成报表的任务调度程序,由于采用分布式架构,一个服务往往会部署多个冗余实例来运行我们的业务,在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。

Ez4Sterben的博客 5549
上一篇: 400行 代码 mergdown 工具简析
下一篇: Xtp-changelog
旷野说
博客等级 码龄9年 361粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值