Пример #1
0
        static void ExecuteTask(TaskDefinition taskDefinition)
        {
            logger.InfoFormat("Start executing scheduled task {0}", taskDefinition.Name);
            var sw = new Stopwatch();
            sw.Start();

            Task.Factory
                .StartNew(taskDefinition.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}", taskDefinition.Name), ex);
                            return true;
                        });
                    }
                    else
                    {
                        logger.InfoFormat("Scheduled task {0} run for {1}", taskDefinition.Name, sw.Elapsed.ToString());
                    }
                });
        }
Пример #2
0
 void DeferTask(TaskDefinition taskDefinition)
 {
     bus.Defer(taskDefinition.Every, new Messages.ScheduledTask
     {
         TaskId = taskDefinition.Id,
         Name = taskDefinition.Name,
         Every = taskDefinition.Every
     });
 }
Пример #3
0
 public void Schedule(TaskDefinition taskDefinition)
 {
     scheduledTasks[taskDefinition.Id] = taskDefinition;
     logger.DebugFormat("Task {0}/{1} scheduled with timeSpan {2}", taskDefinition.Name, taskDefinition.Id, taskDefinition.Every);
     DeferTask(taskDefinition);
 }
Пример #4
0
 public void Schedule(TaskDefinition taskDefinition)
 {
     scheduledTasks[taskDefinition.Id] = taskDefinition;
     logger.DebugFormat("Task {0}/{1} scheduled with timeSpan {2}", taskDefinition.Name, taskDefinition.Id, taskDefinition.Every);
     DeferTask(taskDefinition);
 }