反馈已提交

网络繁忙

FR调用定时任务后轮询是否完成

  • 文档创建者:Wendy123456
  • 历史版本:2
  • 最近更新:Wendy123456 于 2023-11-23
  • 1. 概述

    1.1 应用场景

    FR 通过任务名/任务ID运行定时任务的接口中,可设置延迟参数,在等待设置的 X 秒后可以返回任务运行状态。如下图所示:

    4.png

    但某些定时任务运行时间较长且不稳定,当 FDL 执行到接口设置的时间但任务还未结束时,FR 会接收到 RUNNING 的返回信息。用户无法确定后续定时任务是否运行成功。

    3.png

    1.2 实现思路

    通过调用任务接口返回的实例 ID ,再结合根据实例 ID 查询任务状态的功能,使用 JS 定时器去轮询任务状态,当确认任务完成后再刷新 FR 的查看页面。最终效果如下图所示:

    16.gif

    1.3 任务展示

    请参见 https://demo.fanruan.com/ 「FineDataLink最佳实践>FR调用定时任务后轮询是否完成」。

    2. 示例

    注1:本文示例 FDL 为独立部署,使用 基于任务名运行任务 接口,运行定时任务。

    注2:本文适用于 基于任务名运行任务基于任务ID运行任务 接口。

    2.1 准备工作

    请参见 FR模板调用定时任务接口示例 文档中的 2.1、2.2、2.3、2.5节内容。

    2.2 FR 模板调用接口

    FR 中打开 GettingStarted.cpt 模板,在参数面板中添加「点击按钮」,为「点击按钮」添加「点击事件」。如下图所示:

    6.png


    JS 代码:

    注:用户根据实际情况修改 workName(定时任务名称)值。

    FR.ExecuteWorkByWorkName({
            "workName": "第一个定时开发任务", //【必填】任务名称
            "params": {}, //【非必填】执行参数
            "waitForResponse": "true", //【非必填】等待任务运行完成再返回内容
            "waitTime": 10
        },
        function(error, response) {
            if (error) {
                console.error("请求失败:" + error);
            } else {
                console.log("请求成功,响应数据:" + JSON.stringify(response));
                let recordid = JSON.parse(response).data.recordId; //获取recordid
                if(recordid)
                {FR.Msg.toast("开始运行任务");
                var interval = setInterval(function() {
                    FR.GetRecordInfoByRecordId(
                        recordid,
                        function(error1, response1) {
                            if (error1) {
                                console.error("请求失败:" + error1);
                            } else {
                                let status = JSON.parse(response1).data.status
                                FR.Msg.toast("当前状态" + JSON.parse(response1).data.status)
                                 
                                if (status == 'SUCCESS') {
     
                                     FR.Msg.toast("etl任务运行成功")
                                    clearInterval(interval)
                                }
                            }
                        }
                    );
     
                }, 3000)}
            }
        }
    )

    2.3 效果查看

    预览模板,点击按钮。如下图所示:

    16.gif

    在 FDL 工程中,点击「任务运维>运行记录」,可看到被调用任务的最新运行记录。如下图所示:

    7.png




    附件列表


    主题: 数据开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持