Kettle循环分批执行Rest client请求

业务需求,首先取到数据库中进件单号列表,发送Rest client请求,获取java执行的结果,根据结果更新数据库中进件信息。每次发送的进件单号过多的话,返回的信息量太大,代码报错。所以采用循环,将进件单号分批 执行。整体如下:

javaScript代码如下:


    var currPage = parent_job.getVariable("CURR_PAGE");// 从job获取当前页数值(当前第几页)

    var total_count = parseInt(parent_job.getVariable("count(no)")); // 从job中获取本次导入的总条数
    var page_size = parseInt(parent_job.getVariable("PAGE_SIZE")); // 分页条数
    var total_page = parent_job.getVariable("TOTAL_PAGE"); // 本次导入的总分页数

    if(total_page==null||total_page==undefined||total_page==""){
         total_page = total_count / page_size;
         if(total_count % page_size > 0){
               ++total_page
         }
           parent_job.setVariable("TOTAL_PAGE",total_page);
         }else{
        total_page = parseInt(total_page);
        }

    if(currPage==null||currPage==undefined||currPage==""){
        currPage = 1;
    }else{
        currPage = parseInt(currPage);
    }

    if(currPage>total_page){
        false;
     }else{
        var start = (currPage -1 ) * page_size;
        parent_job.setVariable("START_ROW",start);
        parent_job.setVariable("CURR_PAGE",currPage+1);
        true;
     }

  提交java模块:

表输入中,每次分批:

SELECT
 no
FROM afc_order_info
where 
is_work_flow_done='0'
limit
${START_ROW},${PAGE_SIZE}
 

通过JSON Output模块,将结果封装为Rest Client的入参。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值