/// <summary> /// Constructor /// </summary> /// <param name="run">Run</param> /// <param name="strategy">Strategy</param> public BackoffRunner(IDynamicRuns run, Strategy strategy = Strategy.Exponential) : base(run.MinimumPeriodInSeconds, run.MaximumPeriodInSeconds, strategy) { this.run = run; base.Name = string.Format("{0}+{1}", this.GetType(), this.run.GetType()); }
/// <summary> /// Constructor /// </summary> /// <param name="run">Run</param> /// <param name="strategy">Timing Strategy</param> public AdaptiveRunner(IDynamicRuns run, Strategy strategy = Strategy.Exponential) : base(run.MinimumPeriodInSeconds, run.MaximumPeriodInSeconds, strategy) { this.run = run; base.Name = string.Format("{0}+{1}", this.GetType(), this.run.GetType()); }
/// <summary> /// Runner /// </summary> /// <param name="runs">Runs</param> /// <param name="priority">Priority</param> /// <returns>Scalable</returns> public virtual IScalable Runner(IDynamicRuns runs, QueuePriority priority = QueuePriority.Low) { if (null == runs) { throw new ArgumentNullException("runs"); } switch (priority) { case QueuePriority.High: case QueuePriority.Medium: return(new BackoffRunner(runs, Strategy.Linear)); default: return(new AdaptiveRunner(runs, Strategy.Exponential)); } }
/// <summary> /// Runner /// </summary> /// <param name="runs">Runs</param> /// <param name="priority">Priority</param> /// <returns>Scalable</returns> public virtual IScalable Runner(IDynamicRuns runs, QueuePriority priority = QueuePriority.Low) { if (null == runs) { throw new ArgumentNullException("runs"); } switch (priority) { case QueuePriority.High: case QueuePriority.Medium: return new BackoffRunner(runs, Strategy.Linear); default: return new AdaptiveRunner(runs, Strategy.Exponential); } }