1. 概述编辑
1.1 应用场景
企业用户可能面临这样的情况,报表是需要定期生成、定期发布的,不得不定期做重复的事情来得到用户需要的报表。
1.2 功能介绍
FineReport 的定时调度功能可以让用户从不厌其烦的重复操作中解脱,可以方便快捷地设置日报、月报、季报、年报等任务,无需额外工作,定时任务设定后服务器便会在指定的时间自动完成设定的任务,生成所需的文件,甚至可以将生成的结果以邮件、短信、平台消息通知的方式通知用户,让用户及时的进行分析与决策。
2. 操作方法编辑
2.1 设置入口
定时调度的设置入口有两个,分别为:
1)定时器( op=fs )
进入决策系统,选择管理系统>定时调度,即可进入定时调度的设置界面。
2)定时器(独立 timer)
如果不想通过决策系统来设置定时任务,也可以访问http://localhost:8075/webroot/decision/timer直接进入设置页面。详情参见文档:timer直接定时调度。
2.2 任务管理
任务管理界面可以新建、修改、删除定时调度任务。
2.2.1 添加任务
1)任务管理界面点击添加任务,新建一个定时调度任务。
在创建定时任务的时候,总共分为四步,这四步设置的所有信息也都保存在数据库中,在服务器调用的时候都会从数据库中已经创建的表中选择之前保存的设置信息。每一个步骤的详细设置内容下面将逐一介绍。
2)基本设置中填写任务名称、根据实际需求编辑默认用户组之后,点击下一步。
注:任务名称只允许包含字母、汉字、数字、下划线、减号、点和括号。
3)调度对象中设置调度任务的调度对象,点击下一步。
如果对象类型选择报表模板,则按下图设置调度对象的信息。
注:文件名称是支持公式的,如下图的${now()},调度任务结束后产生的附件文档名即为生成文件的系统时间。
如果调度对象类型选择无调度对象,那么无需进行其他设置。这个选项一般用于通过定时调度发一些企业的通知公告,不需要绑定对象。
4)调度周期中设置调度任务的时间信息,点击下一步。
5)文件处理中定义生成的附件的通知或处理方式,点击保存即可。
如果没有设置调度对象,那么文件处理方式只会有四种。
2.2.2 管理任务
新建好的定时调度任务会按列表显示在任务管理面板,可执行的管理操作包括:执行一次、编辑、复制、查看和删除。
注:无调度对象类型的定时调度任务显示在列表中时,使用模板下显示的是- -。
2.3 运行监控
运行监控类似于日志,可以记录定时调度任务运行的简略信息。
2.4 查看附件
定时调度任务执行完毕后,生成的附件会默认保存到%FR_HOME%\webapps\webroot\WEB-INF\schedule路径下。
2.5 全局设置
运行失败提醒,包括短信、平台通知、邮件,提醒里包含任务名称和运行失败的时间。
点击定时调度页面左上方的全局设置按钮,即可设置运行失败提醒信息。
提醒方式包括:短信、平台通知、邮件。提醒内容是任务名称和运行失败的时间。
注1:失败提醒,若设置了重启,当重启成功时就不发信息了,只有重启依然失败才发出消息。
注2:开启短信功能参见文档:短信,配置邮箱服务参见文档:邮箱 。
当定时任务运行失败时,会发送运行失败提醒,如下图所示:
短信提醒:
平台消息:
邮件提醒:
3. 执行过程编辑
定时任务执行过程流程图如下图,定时任务开始时,首先进行条件判断,判断为真则生成快照,判断为假则确定是否设置了重启,如果设置了重启,则延时重新开始定时任务,又重新开始进行条件判断,没设置任务重启,则直接结束定时任务。
生成快照成功则进入附件发送,失败则判断是否设置任务重启,设置了就重新进入条件判断,没设置则结束定时任务。
附件发送成功就可以结束定时任务,如果发送失败暂时也只能直接结束定时任务。
注:定时任务中的条件判断、生成快照和附件发送如果失败则都需要进行判断是否设置了任务重启。
4. 注意事项编辑
问题描述:JAR 包为 2019-11-05 及之后的 FineReport 设计器,在其决策平台上创建「无调度对象」类型的任务后,如果再将 JAR 包回退到 2019-11-05 之前,便会报下面所描述的错误。
在数据决策系统中,点击管理系统>定时调度后,立刻报错「请求服务器数据失败」,且定时调度任务列表显示为空;
同时后台日志报错 java.lang.IllegalArgumentException: Non-existent schedule extension modules,如下图所示:
原因分析:该现象是因为出现了兼容性问题,这种情况下任务正常执行,但任务列表无法正常显示。
解决方案:需要下载「云端运维-定时调度脏数据删除插件」,自动检查并删除/提示删除脏数据。
注:本文暂不提供下载链接,请需要的客户联系技术支持获取。
插件使用方法:
1)访问平台下的/url/clean,如 http://ip:port/webroot/decision/url/clean。如下图所示:
2)提示找到了无调度对象的定时调度任务,名字为「工资表」,共计 1 个,点击下面的链接即可删除该任务,如下图所示:
索引: