基于Quartz二次开发任务调度机

 一、适用范围

       介于BPM调度主机由于需处理任务事项较多经常崩掉且配置新增任务步骤繁琐暂无任务配置界面,开发 WFMInformTask用于守护BPM调度主机定时关闭和重启、快速编辑任务需求无需重新发布程序动态编译执行、分担BPM调度主机处理简单任务。

二、界面介绍

   1、  主界面

          

  2、  任务清单界面

 

         

 3、 新增任务界面

        

 4、查看/编辑代码界面

        

 5、 Cron表达式生成界面

        

三、新增任务

  1、a)主界面 -->

        b)”新增任务“按钮 -->   

        c)新增任务界面依次填写内容(任务代码若不存在,点击"查看代码",会自动生成代码初始版本,可直接编辑。如已存在任务代码将直接打开,可直接编辑)

        d)“立即执行”,选中后,点击确认通过验证后会立即执行;反之,则不会立即执行 -->

        e)    确认后添加成功,可在”任务清单“中查看,可点击执行或是再次编辑。

    注:首次任务执行时报错,会在主界面消息框中展示! 

四、任务清单----编辑任务 

   1、第一行“系统监视”任务不允许编辑!

   2、光标放于任务行,右键单击显示:

      a)暂停------停止当前任务

      b)重启------重新启动当前任务

      c)刷新------刷新当前任务清单中任务状态

      d)编辑------获取当前任务信息至编辑界面

            编辑后选中”立即执行“,将在点击”确认编辑“后直接执行;反之,则不执行。

     注:任务代码类名将不允许修改,点击查看代码,可直接编辑代码!

 五、查看/编辑任务

    1、创建初始代码模板,例如

 /*
日志记录
时间:2019/9/28 21:56:49
用户:MI
记录:
*/
using Wfm.Quartz.Helper;

namespace Wfm.TimingTaskProcessor.NewSchedule
{
    public class Test01 : BaseSchedule
    {
        public override string ExecuteJob()
        {
            base.wfmApi.StarToPerform();//记录显示当前任务的开始/结束时间
            //你的代码

            base.wfmApi.Error("TimeJob01报错测试!");//报错时输出信息
            base.wfmApi.Warning("TimeJob01警告测试!");//警告时输出信息
            base.wfmApi.Logs("测试日志写入文本!");//写入日志
            return "执行Schedule(Test01-测试)成功!每xxxx秒执行一次!下次执行时间:" + base.wfmApi.NextFireTimeUtc;//返回主界面信息
        }
    }
}

  2、代码规范及解释 

   a)base.wfmApi.StarToPerform();//记录显示当前任务的开始/结束时间

   b)base.wfmApi.Error("TimeJob01报错测试!");//报错时输出信息,并将此消息记录到日志中

   c) base.wfmApi.Warning("TimeJob01警告测试!");//警告时输出信息

   d)base.wfmApi.Logs("测试日志写入文本!");//写入日志

   e)return 返回消息并在界面中显示

   f)多创建任务必须继承  BaseSchedule 类。

       命名空间路径不允许修改,否则将执行报错。

  g)在"你的代码"下编辑具体任务需求。

六、相关文件

  1、  任务代码存放位置:WFMInformTask\bin\Debug\NewJobHelper02\Job2\

         

  2 、目前已上线任务:

        DraftDataClearEmptyObj     检测草稿Json数据是否规范   每分钟执行一次;---正式库

        MonitoringAndDispatchingMachineSchedule   重启调度服务器(SlWinformService、ConsolePdfServiceA、ConsolePdfServiceB)   每天凌晨两点执行一次;----测试库上线

        AutoApproveSaleplSchedule    Ship to Or Vpn三十天失效数据处理,并发送邮件! 每天八点钟执行一次   ;---正式库

        SysJob01     系统监视(监控调度机WFMInformTask自身状态)     注:此任务不允许编辑修改!    ---正式库

        CleanUpJobScheduleQueueGarbageSchedule  清理BPM调度机产生多余任务 -----测试库

 七、初始化及调试

    1、测试Job

      

   2、初始化 

      DbHelper类初始化:DbHelperSQL.DbInitialize("Default");

      Job文件类初始化:Wfm.Common.FileHelper.GetAllFiles(".cs");

      身份验证配置:用户访问/操作文件

 

posted @ 2021-11-10 15:00  Cai,Jimi  阅读(174)  评论(0)    收藏  举报