public void Enqueue_And_Cancel() { var mre = new ManualResetEvent(false); var key = Guid.NewGuid(); var parameter = new Dictionary <string, object>(); parameter.Add("count", 0); TasksHost.Enqueue <LongTask>(key, parameter, completed: (dic) => { mre.Set(); }); System.Threading.Thread.Sleep(2 * 1000); TasksHost.Cancel(key); mre.WaitOne(); var history = TasksHost.GetHistory(key); Check.That(history.CanceledDate).IsNotNull(); var count = history.Parameters["count"]; Check.That((int)count).IsLessThan(10); }
public void Get_Not_Exists_History() { var id = Guid.NewGuid(); var h = TasksHost.GetHistory(id); Check.That(h).IsNull(); }
public void Schedule_Fail_Task() { var task = Scheduler.CreateScheduledTask <FailedTask>("failTask") .EveryMinute(); Scheduler.Add(task); System.Threading.Thread.Sleep(2 * 1000); var hList = TasksHost.GetHistory("failTask"); Check.That(hList).IsNotNull(); }
public void Tasks_Cleanup() { var id = Guid.NewGuid(); var mre = new ManualResetEvent(false); TasksHost.Enqueue <MyTask>(id, completed: (dic) => { mre.Set(); }); mre.WaitOne(); TasksHost.Cleanup(); var result = TasksHost.GetHistory(id); Check.That(result).IsNull(); }
public void Enqueue_Fail_Task() { var id = Guid.NewGuid(); var mre = new ManualResetEvent(false); TasksHost.Enqueue <FailedTask>(id , completed: (dic) => { mre.Set(); }); mre.WaitOne(); var histo = TasksHost.GetHistory(id); Check.That(histo.Exception != null).IsTrue(); }
public static void Remove(string taskName) { lock (Current.ScheduledTaskList.SyncRoot) { var task = Current.ScheduledTaskList.SingleOrDefault(i => i.Name.Equals(taskName, StringComparison.InvariantCultureIgnoreCase)); if (task != null) { if (TasksHost.IsRunning(task.Name)) { var h = TasksHost.GetHistory(task.Name).LastOrDefault(); if (h != null && h.Context != null) { h.Context.IsCancelRequested = true; } } Current.ScheduledTaskList.Remove(task); } } }
public void Non_Generic_Enqueue() { var mre = new ManualResetEvent(false); var key = Guid.NewGuid(); TasksHost.Enqueue(key, typeof(MyTask), completed: (dic) => { mre.Set(); }); mre.WaitOne(); var history = TasksHost.GetHistory(key); Check.That(history).IsNotNull(); Check.That(history.TerminatedDate).IsNotNull(); Check.That(history.Context).IsNull(); }
public IQueryable <ScheduledTaskViewModel> GetList() { var taskList = Scheduler.GetList(); var result = new List <ScheduledTaskViewModel>(); foreach (var item in taskList) { var task = new ScheduledTaskViewModel() { Name = item.Name, CreationDate = item.CreationDate, NextRunningDate = item.NextRunningDate, Period = item.Period, StartedCount = item.StartedCount, Enabled = item.Enabled, Exception = item.Exception, }; var historyList = TasksHost.GetHistory(item.Name); var historyListVM = new List <TaskHistoryViewModel>(); foreach (var historyItem in historyList) { var historyVM = new TaskHistoryViewModel(); historyVM.CanceledDate = historyItem.CanceledDate; historyVM.CreationDate = historyItem.CreationDate; historyVM.Exception = historyItem.Exception; historyVM.Id = historyItem.Id; historyVM.Name = historyItem.Name; historyVM.Parameters = historyItem.Parameters; historyVM.StartedDate = historyItem.StartedDate; historyVM.TerminatedDate = historyItem.TerminatedDate; historyListVM.Add(historyVM); } task.HistoryList = historyListVM; result.Add(task); } return(result.AsQueryable()); }