文章
当前位置:首页  > Quartz > Quartz开发教程 > 正文

002、工作和触发器(Jobs And Triggers)

admin    发布于 2018-6-27 10:49:38   浏览()   评论()   收藏(0)

19.png20.png

在本教程中,为了便于阅读,以下术语可以互换使用:IScheduler和Scheduler,IJob和Job,IJobDetail和JobDetail,ITrigger和Trigger。

一个 Scheduler的生命周期是在Scheduler的创建开始的, 在Shutdown()方法结束。 一旦创建了IScheduler接口,就可以使用它添加,删除和列出作业和触发器,并执行其他与调度相关的操作(例如暂停触发器)。

Quartz 提供“builder”领域特定语言类(or DSL, 有时我们也称为流接口). 入门课程中我们已经看过了,在这里我们再单独看下这部分:

                // define the job and tie it to our HelloJob class
                //定义这个工作并将其与我们的HelloJob类联系起来
                IJobDetail job = JobBuilder.Create<HelloJob>()
                    .WithIdentity("job1", "group1")
                    .Build();

                // Trigger the job to run now, and then repeat every 10 seconds
                //触发作业立即运行,然后每10秒重复一次 RepeatForever:永远重复RepeatForever()表示一直执行,另一个方法->WithRepeatCount(10),表示执行10次 .StartAt(DateBuilder.DateOf(23, 30, 0)):开始时间
                //
                ITrigger trigger = TriggerBuilder.Create()
                    .WithIdentity("trigger1", "group1")
                    .StartNow()
                    .WithSimpleSchedule(x => x
                        .WithIntervalInSeconds(10)//WithIntervalInSeconds间隔多少秒,也有间隔分钟和秒的方法
                        .RepeatForever())
                    .Build();

                // Tell quartz to schedule the job using our trigger
                //告诉quartz的调度schedule 哪个工作用了我们哪个触发器
                await scheduler.ScheduleJob(job, trigger);

以上代码块使用JobBuilder,通过流接口创建了一个IJobDetail类型job(product);同样的方法创建了trigger和特定于给定触发器类型的扩展方法。其他扩展方法有:

如果间隔N天或者某一段时间,建议使用WithCalendarIntervalSchedule

需要排除节假日的用WithCalendarIntervalSchedule

  • WithCalendarIntervalSchedule

  • WithCronSchedule

  • WithDailyTimeIntervalSchedule

  • WithSimpleSchedule:如果你只需要你的 job 在某个特定的时刻执行一次, 或者在某一个时刻重复执行几遍, 使用WithSimpleSchedule


21.png


DateBuilder类包含各种方法,用于为特定的时间点(如表示下一个偶数小时的日期 - 也就是说10:00:00,如果它当前为9:43:27)轻松构建DateTimeOffset实例。

如果您需要“一次性”执行(在某个特定时间只执行一项作业),或者如果您需要在给定时间启动作业,并重复执行N次,SimpleTrigger会很方便的T之间执行。如果您希望根据类似日历的时间表进行触发,例如“每个星期五,中午”或“每个月的第10天的10:15”,则CronTrigger非常有用。

附件下载

上一篇: 001、快速入门
下一篇: 没有了

共有条评论 网友评论

验证码: 看不清楚?
    JMCMS   版权所有 Copyright © 2028 All Rights Reserved     鲁ICP备15015027号-1    留言    订阅