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

Kettle循环分批执行Rest client请求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模块:

Kettle循环分批执行Rest client请求

表输入中,每次分批:

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

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

相关文章:

  • 2021-11-14
  • 2022-12-23
  • 2021-09-12
  • 2022-12-23
  • 2021-09-26
  • 2021-06-04
  • 2021-10-22
  • 2021-07-29
猜你喜欢
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案