【Quartz】问题记录注意事项【四】

记录一:queartz 在同时启动多个任务是,触发器名称不能设置一致,不然第二次启动会不成功

 

记录二:quartz 在使用任务与触发器分离写法时,任务必须要带(.StoreDurably())

 IJobDetail job = JobBuilder.Create<HelloJob>()
                            .WithIdentity("HelloJob", "group1")
                            .StoreDurably()
                            .Build();
            sched.AddJob(job, true);

记录三:quartz在使用持续化到数据库是恢复有时候会失败建议加((.RequestRecovery))

 IJobDetail job = JobBuilder.Create<ServerJob>()
                           .WithIdentity("ServerJob", "group1")
                           .RequestRecovery()
                           .Build();

 这样失败后会重新执行。

记录四:quartz使用持续化到数据库可分为有状态和无状态。区分在任务类上增加【PersistJobDataAfterExecution】特性

记录五:quartz使用持续化到数据库设置不可并发在任务类上增加【DisallowConcurrentExecution】特性。

 [PersistJobDataAfterExecution] //代表当前任务是否有状态
    [DisallowConcurrentExecution]//代表任务不允许并发
    public class ServerJobState : ServerJob
    {
    }

 记录六:一个job可以关联多个 trigger ,但是一个 trigger 只能关联一个job。

 记录七:数据库QRTZ_JOB_DETAILS表其中字段增加解释:   

     //DESCRIPTION:描述
    //IS_DURABLE:代表是否持久化
    //IS_NONCONCURRENT:是否运行并发
    //IS_UPDATE_DATA:是否有状态:false 无状态,true有状态
    //REQUESTS_RECOVERY:是否执行恢复对应设置RequestRecovery方法

记录八:数据库QRTZ_TRIGGERS表字段部分解释:

    借鉴地址:https://www.cnblogs.com/skyLogin/p/6915921.html

    //DESCRIPTION: 触发器的描述等基本信息,
    //START_TIME :开始执行时间,
    //END_TIME :结束执行时间,
    //PREV_FIRE_TIME: 上次执行时间,
    //NEXT_FIRE_TIME: 下次执行时间,
    //TRIGGER_TYPE: 触发器类型:simple和cron,
    //TRIGGER_STATE: 执行状态:WAITING,PAUSED,ACQUIRED分别为:等待,暂停,运行中

 记录九:分用户启动可以设置不同的调度器名称来自动各自用户的任务。这样就不是在一个调度下工作。

posted @ 2018-05-17 11:54  YanBigFeg  阅读(629)  评论(0编辑  收藏  举报