• Quartz.Net系列(七):Trigger之SimpleScheduleBuilder详解


    所有方法图

     SimpleScheduleBuilder方法

    RepeatForever:指定触发器将无限期重复。

    WithRepeatCount:指定重复次数

    var trigger = TriggerBuilder.Create().WithSimpleSchedule(s=>s.WithIntervalInSeconds(1).RepeatForever()).Build();
                var trigger = TriggerBuilder.Create().WithSimpleSchedule(s=>s.WithIntervalInSeconds(1)
                                                                             .WithRepeatCount(10)).Build();

    注:底层实现是repeatCount+1,也就是总共执行repeatCount+1次

            /// <summary>
            /// Specify a the number of time the trigger will repeat - total number of
            /// firings will be this number + 1.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <param name="repeatCount">the number of seconds at which the trigger should repeat.</param>
            /// <returns>the updated SimpleScheduleBuilder</returns>
            /// <seealso cref="ISimpleTrigger.RepeatCount" />
            /// <seealso cref="RepeatForever" />
            public SimpleScheduleBuilder WithRepeatCount(int repeatCount)
            {
                this.repeatCount = repeatCount;
                return this;
            }

    WithInterval:以毫秒为单位指定重复间隔,由于是TimeSpan也可以指定时分秒

    WithIntervalInHours:以小时为单位指定重复间隔

    WithIntervalInMinutes:以分钟单位指定重复间隔

    WithIntervalInSeconds:以秒为单位指定重复间隔

                var trigger = TriggerBuilder.Create().WithSimpleSchedule(s=>s .WithIntervalInSeconds(1)
                                                                              .WithInterval(TimeSpan.FromDays(1))
                                                                              .WithIntervalInMinutes(1)
                                                                              .WithIntervalInHours(1)
                                                                              .WithRepeatCount(5))
                                                     .Build();

    注:底层都是通过WithInterval实现的

            /// <summary>
            /// Specify a repeat interval in milliseconds.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <param name="timeSpan">the time span at which the trigger should repeat.</param>
            /// <returns>the updated SimpleScheduleBuilder</returns>
            /// <seealso cref="ISimpleTrigger.RepeatInterval" />
            /// <seealso cref="WithRepeatCount(int)" />
            public SimpleScheduleBuilder WithInterval(TimeSpan timeSpan)
            {
                interval = timeSpan;
                return this;
            }
    
            /// <summary>
            /// Specify a repeat interval in seconds.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <param name="seconds">the time span at which the trigger should repeat.</param>
            /// <returns>the updated SimpleScheduleBuilder</returns>
            /// <seealso cref="ISimpleTrigger.RepeatInterval" />
            /// <seealso cref="WithRepeatCount(int)" />
            public SimpleScheduleBuilder WithIntervalInSeconds(int seconds)
            {
                return WithInterval(TimeSpan.FromSeconds(seconds));
            }

    静态方法:

    RepeatMinutelyForever

    RepeatMinutelyForTotalCount

    RepeatSecondlyForever

    RepeatSecondlyForTotalCount

    RepeatHourlyForever

    RepeatHourlyForTotalCount

    var trigger = TriggerBuilder.Create().WithSchedule(SimpleScheduleBuilder.RepeatSecondlyForTotalCount(2)).Build();
     /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat forever with a 1 minute interval.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatMinutelyForever()
            {
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromMinutes(1))
                    .RepeatForever();
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat forever with an interval
            /// of the given number of minutes.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatMinutelyForever(int minutes)
            {
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromMinutes(minutes))
                    .RepeatForever();
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat forever with a 1 second interval.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatSecondlyForever()
            {
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromSeconds(1))
                    .RepeatForever();
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat forever with an interval
            /// of the given number of seconds.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatSecondlyForever(int seconds)
            {
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromSeconds(seconds))
                    .RepeatForever();
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat forever with a 1 hour interval.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatHourlyForever()
            {
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromHours(1))
                    .RepeatForever();
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat forever with an interval
            /// of the given number of hours.
            /// </summary>
            /// <remarks>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatHourlyForever(int hours)
            {
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromHours(hours))
                    .RepeatForever();
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat the given number
            /// of times - 1  with a 1 minute interval.
            /// </summary>
            /// <remarks>
            /// <para>Note: Total count = 1 (at start time) + repeat count</para>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatMinutelyForTotalCount(int count)
            {
                if (count < 1)
                {
                    throw new ArgumentException("Total count of firings must be at least one! Given count: " + count);
                }
    
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromMinutes(1))
                    .WithRepeatCount(count - 1);
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat the given number
            /// of times - 1  with an interval of the given number of minutes.
            /// </summary>
            /// <remarks>
            /// <para>Note: Total count = 1 (at start time) + repeat count</para>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatMinutelyForTotalCount(int count, int minutes)
            {
                if (count < 1)
                {
                    throw new ArgumentException("Total count of firings must be at least one! Given count: " + count);
                }
    
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromMinutes(minutes))
                    .WithRepeatCount(count - 1);
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat the given number
            /// of times - 1  with a 1 second interval.
            /// </summary>
            /// <remarks>
            /// <para>Note: Total count = 1 (at start time) + repeat count</para>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatSecondlyForTotalCount(int count)
            {
                if (count < 1)
                {
                    throw new ArgumentException("Total count of firings must be at least one! Given count: " + count);
                }
    
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromSeconds(1))
                    .WithRepeatCount(count - 1);
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat the given number
            /// of times - 1  with an interval of the given number of seconds.
            /// </summary>
            /// <remarks>
            /// <para>Note: Total count = 1 (at start time) + repeat count</para>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatSecondlyForTotalCount(int count, int seconds)
            {
                if (count < 1)
                {
                    throw new ArgumentException("Total count of firings must be at least one! Given count: " + count);
                }
    
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromSeconds(seconds))
                    .WithRepeatCount(count - 1);
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat the given number
            /// of times - 1  with a 1 hour interval.
            /// </summary>
            /// <remarks>
            /// <para>Note: Total count = 1 (at start time) + repeat count</para>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatHourlyForTotalCount(int count)
            {
                if (count < 1)
                {
                    throw new ArgumentException("Total count of firings must be at least one! Given count: " + count);
                }
    
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromHours(1))
                    .WithRepeatCount(count - 1);
    
                return sb;
            }
    
            /// <summary>
            /// Create a SimpleScheduleBuilder set to repeat the given number
            /// of times - 1  with an interval of the given number of hours.
            /// </summary>
            /// <remarks>
            /// <para>Note: Total count = 1 (at start time) + repeat count</para>
            /// </remarks>
            /// <returns>the new SimpleScheduleBuilder</returns>
            public static SimpleScheduleBuilder RepeatHourlyForTotalCount(int count, int hours)
            {
                if (count < 1)
                {
                    throw new ArgumentException("Total count of firings must be at least one! Given count: " + count);
                }
    
                SimpleScheduleBuilder sb = Create()
                    .WithInterval(TimeSpan.FromHours(hours))
                    .WithRepeatCount(count - 1);
    
                return sb;
            }
  • 相关阅读:
    hh
    SDUT 3923 打字
    最短路
    阶乘后面0的个数(51Nod 1003)
    大数加法
    Biorhythms(中国剩余定理)
    usaco-5.1-theme-passed
    usaco-5.1-starry-passed
    usaco-5.1-fc-passed
    usaco-4.4-frameup-passed
  • 原文地址:https://www.cnblogs.com/vic-tory/p/13168723.html
Copyright © 2020-2023  润新知