コード例 #1
0
 public void Given_work_item()
 {
     var definition = JobFactory.Interval("Foo1", () =>
     {
         return Task.Factory.StartNew(() => Console.WriteLine("Foo1"));
     }, TimeSpan.FromMinutes(10));
     _item = new JobItem(new DefaultSchedulerContext(), definition, null);
 }
コード例 #2
0
 public void Add(JobItem item)
 {
     if (IsJobRegisterd(item.JobKey))
     {
         throw new InvalidOperationException("Job with key " + item.JobKey + " already registered.\r\n"
                                             + "You can use IsJobRegisterd to check if job is already registered");
     }
     _items.TryAdd(item.JobKey, item);
 }
コード例 #3
0
 public void Add(JobItem item)
 {
     if (IsJobRegisterd(item.JobKey))
     {
         throw new InvalidOperationException("Job with key " + item.JobKey + " already registered.\r\n"
             + "You can use IsJobRegisterd to check if job is already registered");
     }
     _items.TryAdd(item.JobKey, item);
 }
        public void Given_work_item()
        {
            var ctx = new TestSchedulerContext();
            // Make workitem think that it was created yesterday
            ctx.MoveToYesterday();
            _item = WorkItemFactory.Create(ctx);

            // Now update date to today, this
            // will make workitem applicable for scheduling
            ctx.MoveToNow();

            // Force workitem to reschedule
            _item.UpdateState();
            //Console.WriteLine("bo ya:" + _item.Status);
        }
        public void Given_work_item()
        {
            var state = TempFolderStateProvider.CreateInTempFolder("When_work_item_has_not_run_since_before_interval" + Guid.NewGuid().ToString());

            state.Store("Foo1", new WorkState {
                LastCompleteTime = new DateTime(11, 10, 09)
            });

            var ctx = new TestSchedulerContext();
            ctx.State = state;

            // Make workitem with LastComplete from 9-10-2011
            _item = WorkItemFactory.Create(ctx);

            // Force workitem to reschedule
            _item.UpdateState();
        }
コード例 #6
0
        public void Given_work_item()
        {
            var ctx = new TestSchedulerContext();
            _item = WorkItemFactory.Create(ctx);

            // Make item think that now tomorrow, so
            // it became applicable for scheduling
            ctx.MoveToTommorrow();
            _item.UpdateState();
            _item.Run();

            // and .. wait until it will complete
            while (true)
            {
                if (_item.Status == JobStatus.Pending)
                {
                    break;
                }
                Thread.Sleep(200);
            }
        }
コード例 #7
0
        private static string GatherJobReport(JobItem jobItem)
        {
            if (jobItem.PreviousRuns.Count == 0)
            {
                return("N/A");
            }

            var message = new StringBuilder();

            var average = Math.Round(jobItem.PreviousRuns.Average(x => (x.Completed - x.Started).TotalSeconds), 2);

            message.AppendLine("Average execution time: " + average + "s.");

            var failedRuns = jobItem.PreviousRuns.Where(x => x.Result == JobRunResult.Failure).ToList();

            if (failedRuns.Count != 0)
            {
                message.AppendLine("Job failed at least " + failedRuns.Count + " times.");
            }

            return(message.ToString());
        }
コード例 #8
0
 private static JobHealth GatherJobHealth(JobItem x)
 {
     return(x.PreviousRuns.Any(xx => xx.Result == JobRunResult.Failure)
         ? JobHealth.Bad
         : JobHealth.Good);
 }
コード例 #9
0
        private static string GatherJobReport(JobItem jobItem)
        {
            if (jobItem.PreviousRuns.Count == 0)
            {
                return "N/A";
            }

            var message = new StringBuilder();

            var average = Math.Round(jobItem.PreviousRuns.Average(x => (x.Completed - x.Started).TotalSeconds), 2);
            message.AppendLine("Average execution time: " + average + "s.");

            var failedRuns = jobItem.PreviousRuns.Where(x => x.Result == JobRunResult.Failure).ToList();
            if (failedRuns.Count != 0)
            {
                message.AppendLine("Job failed at least " + failedRuns.Count + " times.");
            }

            return message.ToString();
        }
コード例 #10
0
 private static JobHealth GatherJobHealth(JobItem x)
 {
     return x.PreviousRuns.Any(xx => xx.Result == JobRunResult.Failure)
         ? JobHealth.Bad
         : JobHealth.Good;
 }