private static void ExecuteTask(ScheduledTask scheduledTask) { logger.InfoFormat("Start executing scheduled task {0}", scheduledTask.Name); var sw = new Stopwatch(); sw.Start(); Task.Factory .StartNew(scheduledTask.Task, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default) .ContinueWith(task => { sw.Stop(); if (task.IsFaulted) { task.Exception.Handle(ex => { logger.Error(String.Format("Failed to execute scheduled task {0}", scheduledTask.Name), ex); return true; }); } else { logger.InfoFormat("Scheduled task {0} run for {1}", scheduledTask.Name, sw.Elapsed.ToString()); } }); }
private Schedule(TimeSpan timeSpan) { scheduler = Configure.Instance.Builder.Build <IScheduler>(); scheduledTask = new ScheduledTask { Every = timeSpan }; }
private void DeferTask(ScheduledTask task) { bus.Defer(task.Every, new Messages.ScheduledTask { TaskId = task.Id, Name = task.Name, Every = task.Every }); }
private static void ExecuteTask(ScheduledTask scheduledTask) { logger.InfoFormat("Start executing scheduled task {0}", scheduledTask.Name); var sw = new Stopwatch(); sw.Start(); Task.Factory .StartNew(scheduledTask.Task, TaskCreationOptions.None) .ContinueWith(_ => { sw.Stop(); logger.InfoFormat("Scheduled task {0} run for {1}", scheduledTask.Name, sw.Elapsed.ToString()); }); }
public void Add(ScheduledTask scheduledTask) { scheduledTasks.Add(scheduledTask.Id, scheduledTask); }
public void Schedule(ScheduledTask task) { scheduledTaskStorage.Add(task); logger.DebugFormat("Task {0}/{1} scheduled with timeSpan {2}", task.Name, task.Id, task.Every); DeferTask(task); }
private void DeferTask(ScheduledTask task) { bus.Defer(task.Every, new Messages.ScheduledTask { TaskId = task.Id }); }
public void Schedule(ScheduledTask task) { scheduledTaskStorage.Add(task); logger.DebugFormat("Task {0}/{1} scheduled with timespan {2}", task.Name, task.Id, task.Every); DeferTask(task); }
public void Add(ScheduledTask scheduledTask) { scheduledTasks.Add(scheduledTask.Id, scheduledTask); }
private Schedule(TimeSpan timeSpan) { scheduler = Configure.Instance.Builder.Build<IScheduler>(); scheduledTask = new ScheduledTask { Every = timeSpan }; }