定时任务之条件判断

编辑
  • 文档创建者:文档助手1
  • 浏览次数:8310次
  • 编辑次数:20次
  • 最近更新:Kevin-s 于 2019-06-05
  • 1. 描述

    定时任务条件判断是指在执行定时任务之前进行一次校验判断,如果不满足条件就不执行或者延迟后再次校验执行(只有勾选了任务重启才会出现延迟一段时间后再次校验执行)。

    条件判断包含三种类型的选择:始终执行、公式判断和自定义类判断

    始终执行,顾名思义就是不进行条件判断,直接执行定时任务,下面详细介绍公式判断和自定义类判断。

    2. 公式判断

    公式判断就是指定时任务在执行前要对当前公式内容进行判定,公式为真则继续执行定时任务,如果公式为假则不执行或者延迟执行,延迟执行是指在勾选了任务重启的情况下,会在间隔一段设定的时间后再次执行定时任务,重新进行条件判断,以此类推,当重启次数达到设置值的时候,条件判断还是不满足,则不执行,如果中间有一次满足则执行定时任务。

    2.1 模板准备

    打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\日报.cpt,查询一段时间内的数据信息情况。

    2.2 添加定时任务

    打开数据决策系统,点击管理系统>定时调度,添加一个定时任务,填写“任务名称”,设置“默认用户组”,点击编辑,这里设置一个平台用户 demo,点击确定,再点击下一步,如下图:


    点击下一步,设置调度周期执行条件选择公式判断,在右侧的公式输入框中输入E3>50,如下图:


    表示定时任务执行的模板中如果 E3 单元格的值大于 50 的时候,就可以执行定时任务,如果小于等于 50 则进行任务重启,每隔一分钟(自己设定)重启一次,重启之后再次运行执行条件的公式判断,公式判断还是不满足条件则再次任务重启,直至重启过 2 次(自己设定)之后,公式判断还是不满足,则不执行。

    点击下一步,配置本地文件,设置如下图:


    点击下一步,配置输出设置,设置如下图:


    点击提交按钮,定时任务添加完成了,在调度周期设置开始时间时使用的是默认配置结束立刻开始,故此时,定时任务马上开始执行。

    2.3 结果查看

    运行后在任务管理可以看到公式判断任务已经运行结束,如下图:


    点击运行监控,查看该任务执行的监控


    3. 自定义类判断

    自定义类判断是指执行自定义类,返回值为true的时候执行定时任务。

    定时任务的自定义类需要实现 com.fr.schedule.base.provider.ExecuteCondition 接口,该接口有一个方法 public boolean execute(),完成条件判断逻辑并返回判断结果。

    3.1 自定义类编写

    比如说我们在执行定时任务时判断一下是不是周二,如果是周二就执行,不是周二就不执行,代码如下:

    package com.fr.schedule;
    import java.util.Calendar;
    import com.fr.schedule.base.provider.ExecuteCondition;
    public class ExecuteClass implements ExecuteCondition {
    public boolean execute() {
    Calendar cal = Calendar.getInstance();
    int dow = cal.get(Calendar.DAY_OF_WEEK);//星期二的dow等于3
    return (dow) == 3;
    }
    }

    编译之后的 class 文件保存到%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\schedule文件夹下。

    3.2 定时任务设置

    添加一个定时任务自定义类判断,在调度周期设置条件执行的时候,选择自定义类判断,点击右侧的下拉按钮,选择上面保存的 class 文件,如下图:


    设置完四个步骤之后保存即可。

    3.3 效果查看

    如果今天是周二,点击运行监控,可以看到运行信息显示快照生成:成功,如下图:


    如果今天不是周二,点击运行监控,可以看到运行信息显示快照生成:跳过,如下图:



    附件列表


    主题: 决策系统
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]