博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elastic-job详解(五):自定义任务参数
阅读量:7235 次
发布时间:2019-06-29

本文共 1115 字,大约阅读时间需要 3 分钟。

在一文中讲到了如何手动触发一个Job,但是我们手动触发的时候常常需要输入一些参数。举个栗子:我们有个日统计报表,每天凌晨统计一次,统计上一天的数据。但我们发现几天前的某一天的数据有问题,需要重跑统计。这就需要统计程序能执行指定某一天的数据。这个功能就可以使用自定义任务参数来轻松实现。自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业。例:每次获取的数据量、作业实例从数据库读取的主键、执行某一天的任务等。

 

1. 支持自定义参数的代码

要使用自定义参数,就必须要在你实现的任务中使用这个参数,下面我们来看一下具体实现的代码:

public class MySimpleJob implements SimpleJob{    Logger logger = LoggerFactory.getLogger("MyShardingJob1");        @Override    public void execute(ShardingContext shardingContext)    {        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");        String date;        String param = shardingContext.getJobParameter();        date = param.isEmpty() ? sdf.format(new Date()) : param;        doWork(date);    }    private void doWork(String date)    {        logger.info("Doing work.");    }}

真正和业务处理方法doWork接收一个日期参数,如果自定义参数没有则按照常规使用当前时间来进行统计,如果通过手动触发给定了参数,则使用给定的参数来做任务。自定义参数是根据shardingContext.getJobParameter()来获取。

 

2. 触发自定义参数

代码层面支持之后,我们来看一下怎么触发。首先找到console管理界面,连上正在执行的任务,点击“修改”按钮。

进入任务修改界面,在自定义参数一栏添加参数,然后点击更新。

 

最后,在图1中点击触发按钮。带参数的任务就会被触发。千万不要忘记执行成功之后再次修改回来,避免每次执行都会使用这个自定义参数。

 

elastic-job内部是在zookeeper中修改任务config节点中”jobParameter”的数据。

 

 

 

 

 

 

转载地址:http://xplfm.baihongyu.com/

你可能感兴趣的文章
vscode: Visual Studio Code 常用快捷键1
查看>>
多线程(7)多线程中的异常处理
查看>>
(转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式...
查看>>
java多线程之 ---- 线程死锁
查看>>
APP三种开发模式
查看>>
solr入门之solr的拼写检查功能的应用级别尝试
查看>>
《分水岭:看清中国科技和互联网未来五年的趋势》出版 腾讯科技出品
查看>>
UIButton的图片和文字相对位置调整
查看>>
mark 百度Echarts统计图表
查看>>
Java多线程基础(二)
查看>>
eclipse中javadoc给项目生成api文档
查看>>
IOS UIPickView+sqlite 选择中国全部城市案例
查看>>
Cocos2d-x 3.0的启动流程
查看>>
ES6模板字面量
查看>>
使用SpannableString实现一个load小动画
查看>>
CSS高度自适应 height:100%;
查看>>
jboss规则引擎KIE Drools 6.3.0 Final 教程(1)
查看>>
网络传输乱码问题
查看>>
TP3.2:实现Ajax无刷新上传图片
查看>>
Java调整JVM内存大小——(八)
查看>>