代码来源于官网

1.简单模式

@XxlJob("demoJobHandler")public ReturnT<String>  demoJobHandler(String param) throws Exception {XxlJobHelper.log("XXL-JOB, Hello World.");for (int i = 0; i < 5; i++) {XxlJobHelper.log("beat at:" + i);TimeUnit.SECONDS.sleep(2);}// default successReturnT<String> msg=new ReturnT<>(200,"[执行成功]"+new Date());return msg;}

调度中心admin的任务运行模式要和@XxlJob值一致

运行结果:

2.分片广播任务

@XxlJob("shardingJobHandler")public void shardingJobHandler() throws Exception {// 分片参数int shardIndex = XxlJobHelper.getShardIndex();  //当前分片int shardTotal = XxlJobHelper.getShardTotal();  //总分片XxlJobHelper.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardIndex, shardTotal);// 业务逻辑for (int i = 0; i < shardTotal; i++) {if (i == shardIndex) {XxlJobHelper.log("第 {} 片, 命中分片开始处理", i);} else {XxlJobHelper.log("第 {} 片, 忽略", i);}}}

1)单机多任务:配置多个任务,指定不同的参数,但是使用相同的jobHandler

2)多机分片:启动多个执行器管理实例,配置一个分片任务

3.命令行任务

@XxlJob("commandJobHandler")public void commandJobHandler() throws Exception {String command = XxlJobHelper.getJobParam();int exitValue = -1;BufferedReader bufferedReader = null;try {// command processProcessBuilder processBuilder = new ProcessBuilder();processBuilder.command(command);processBuilder.redirectErrorStream(true);Process process = processBuilder.start();//Process process = Runtime.getRuntime().exec(command);BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream());bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));// command logString line;while ((line = bufferedReader.readLine()) != null) {XxlJobHelper.log(line);}// command exitprocess.waitFor();exitValue = process.exitValue();} catch (Exception e) {XxlJobHelper.log(e);} finally {if (bufferedReader != null) {bufferedReader.close();}}if (exitValue == 0) {// default success} else {XxlJobHelper.handleFail("command exit value("+exitValue+") is failed");}}

创建commandJobHandler,写一个bat或者cmd文件,任务运行时任务参数

D:/a.bat

bat文件:

@echo  off
start https://www.baidu.com/s?wd=xxljob

任务执行成功后自动跳转到相关网页:

4.跨平台http任务
@XxlJob("httpJobHandler")public void httpJobHandler() throws Exception {// param parseString param = XxlJobHelper.getJobParam();if (param==null || param.trim().length()==0) {XxlJobHelper.log("param["+ param +"] invalid.");XxlJobHelper.handleFail();return;}String[] httpParams = param.split("\n");String url =null;String method = null;// String data = null;   //nullfor (String httpParam: httpParams) {if (httpParam.startsWith("url:")) {url = httpParam.substring(httpParam.indexOf("url:") + 4).trim();}if (httpParam.startsWith("method:")) {method = httpParam.substring(httpParam.indexOf("method:") + 7).trim().toUpperCase();}/*if (httpParam.startsWith("data:")) {data = httpParam.substring(httpParam.indexOf("data:") + 5).trim();}*/}// param validif (url==null || url.trim().length()==0) {XxlJobHelper.log("url["+ url +"] invalid.");XxlJobHelper.handleFail();return;}if (method==null || !Arrays.asList("GET", "POST").contains(method)) {XxlJobHelper.log("method["+ method +"] invalid.");XxlJobHelper.handleFail();return;}boolean isPostMethod = method.equals("POST");// requestHttpURLConnection connection = null;BufferedReader bufferedReader = null;try {// connectionURL realUrl = new URL(url);connection = (HttpURLConnection) realUrl.openConnection();// connection settingconnection.setRequestMethod(method);connection.setDoOutput(isPostMethod);connection.setDoInput(true);connection.setUseCaches(false);connection.setReadTimeout(5 * 1000);connection.setConnectTimeout(3 * 1000);connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");// do connectionconnection.connect();// data/* if (isPostMethod && data!=null && data.trim().length()>0) {DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());dataOutputStream.write(data.getBytes("UTF-8"));dataOutputStream.flush();dataOutputStream.close();}*/// valid StatusCodeint statusCode = connection.getResponseCode();if (statusCode != 200) {throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");}// resultbufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));StringBuilder result = new StringBuilder();String line;while ((line = bufferedReader.readLine()) != null) {result.append(line);}String responseMsg = result.toString();XxlJobHelper.log(responseMsg);return;} catch (Exception e) {XxlJobHelper.log(e);XxlJobHelper.handleFail();return;} finally {try {if (bufferedReader != null) {bufferedReader.close();}if (connection != null) {connection.disconnect();}} catch (Exception e2) {XxlJobHelper.log(e2);}}}

任务参数

执行成功后执行日志自动跳转

5.生命周期任务

@XxlJob(value = "demoJobHandler2", init = "init", destroy = "destroy")public void demoJobHandler2() throws Exception {XxlJobHelper.log("XXL-JOB, Hello World.");}public void init(){logger.info("init");}public void destroy(){logger.info("destory");}
任务初始化与销毁时,支持自定义相关逻辑;

xxljob任务实例相关推荐

  1. xxl-job使用实例

    1,先从gitee上拉代码https://gitee.com/xuxueli0323/xxl-job git clone https://gitee.com/xuxueli0323/xxl-job.g ...

  2. 学成在线项目开发技巧整理---第一部分

    学成在线项目开发技巧整理---第一部分 1.数据字典 2.http-client远程测试插件,可以保存测试数据 3.三种跨域解决 4.具有多层级数据查询思路 5.Mybaits分页插件原理 6.根据文 ...

  3. 前端开发基础知识汇总

    一.HTML 1.前言与常用标签 浏览器 内核 备注 IE Trident IE.猎豹安全.360极速浏览器.百度浏览器 firefox Gecko 可惜这几年已经没落了,打开速度慢.升级频繁.猪一样 ...

  4. Spring Cloud微服务系统架构的一些简单介绍和使用

    Spring Cloud 目录 特征 云原生应用程序 Spring Cloud上下文:应用程序上下文服务 引导应用程序上下文 应用程序上下文层次结构 改变Bootstrap的位置Properties ...

  5. 【xxl-job】轻松实现分布式定时任务demo实例

    [项目描述] 前段时间专门独立了一个spring boot服务,用于做和第三方erp系统的对接工作.此服务的第一个需求工作就是可以通过不同的规则,设置不同的定时任务,从而获取erp系统的商品数据.所以 ...

  6. xxl-job的使用实例

    本文来写篇xxl-job的使用实例 文章目录 概述 使用实例 准备工作 控制面板 添加执行器和任务 本文小结 概述 在启动xxl-job服务端以后,打开控制面板 使用实例 准备工作 创建一个sprin ...

  7. 分布式任务调度平台 XXL-JOB

    https://opentalk.upyun.com/303.html 2017 年 10 月 22 日,又拍云 Open Talk 联合 Spring Cloud 中国社区成功举办了"进击 ...

  8. docker部署xxl-job 通用反射执行器

    原因 最近在公司写一些job,公司使用的是spring boot提供的注解形式实现的. 这样在自测的时候很麻烦,而且测试提测的时候需要修改cron表达式->提交git->jenkins打包 ...

  9. xxljob 配置文件_SpringBoot整合Xxl-Job的完整步骤记录

    一.下载Xxl-Job源代码并导入本地并运行 1.使用Idea或Eclipse导入 2.执行sql脚本(红色标记处) 3.运行xxl-job-admin(xxl-job后台管理,主要方便管理各种各样的 ...

最新文章

  1. 《Nature》发文:好导师的16个标准
  2. mongodb update
  3. 内核中的UDP socket流程(7)——udp_sendmsg
  4. mysql 复制功能_MySQL实现主从复制功能
  5. Darwin Streaming Server 安装流程
  6. Sublime Text 3快捷键
  7. mc服务器tp到指定,我的世界怎么把别人tp到指定地点 | 手游网游页游攻略大全
  8. OverFeat,分类、定位、检测
  9. Cocos Creator ts版本使用protobuf
  10. 软件需求收集、挖掘和分析方法
  11. 《Intriguing Properties of Contrastive Losses》阅读笔记
  12. API 的理解与使用- 键管理
  13. php黑名单绕过,文件上传漏洞之黑名单检测绕过
  14. Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base(笔记)
  15. charles安装证书并信任证书,仍然无法获取手机上的请求
  16. python读xml文件生成.h头文件_Python创建xml文件示例
  17. pdf.js使用(在线预览pdf文件)
  18. DSP公司如何利用街道级IP地理定位提升广告投放ROI
  19. 如何在mac eclipse引入win版本eclipse的android项目
  20. 超前进位加法器(Verilog数字IC)

热门文章

  1. 纵享丝滑滑动切换的周月日历,水滴效果,丰富自定义日历样式,仿小米日历(ViewDragHelper实现)...
  2. node搭建vue脚手架
  3. Python3.6实现12306火车票自动抢票
  4. nginx重启失败nginx -s reload
  5. 待研究 微信的商业模式与创业机会
  6. 职场生存--赞美别人
  7. 详谈 2PC 3PC
  8. python写的飞船游戏卡顿,Python3+Pygame实现的射击游戏,很流畅,有音效
  9. centos vim显示行号
  10. 不停刷朋友圈的人_你发现了吗?越来越多的人关闭了自己的朋友圈