예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="taskExecuter"></param>
        /// <returns></returns>
        private bool InternalExecuteTask(TaskExecuter taskExecuter)
        {
            var result = taskExecuter.Execute();

            TaskExecuted?.Invoke(taskExecuter);

            return(result);
        }
예제 #2
0
파일: TaskFactory.cs 프로젝트: pleb/Tank
        public static ITaskExecuter LoadViaConfigurationSection(Section section)
        {
            if (section == null)
            {
                throw new ArgumentNullException("section");
            }

            var runner = new TaskExecuter();

            for (int i = 0; i < section.Tasks.Count; i++)
            {
                Element taskElement = section.Tasks[i];

                runner.Add((ITask) DependencyInjection.Get(taskElement.Type));
            }

            return runner;
        }
        internal int OnExecute()
        {
            Console.CancelKeyPress += OnExit;

            Logger.IsColorEnabled = !IsColorDisabled;
            Logger.IsVerbose      = IsVerbose;

            var context = new TaskContext()
            {
                TaskDefinitionFilePath = TaskDefinitionFilePath,
                EnvironmentVariables   = EnvironmentVariables,
                SkippedSteps           = SkippedSteps,
                WorkingDirectory       = WorkingDictionary ?? Environment.CurrentDirectory
            };

            executer = new TaskExecuter(context);

            return(executer.Execute());
        }
        public void SuccessTest()
        {
            var path = Path.GetFullPath("../../../../example-definitions/example3.yml");

            var context = new TaskContext()
            {
                TaskDefinitionFilePath = path,
                EnvironmentVariables   = new Dictionary <string, string>(),
                SkippedSteps           = new HashSet <int>(),
                WorkingDirectory       = Environment.CurrentDirectory
            };

            var executer   = new TaskExecuter(context);
            var exitCode   = executer.Execute();
            var testModule = executer.Definition.Modules["test"] as TestModule;

            Assert.AreEqual((int)ExitCode.Success, exitCode);
            Assert.AreEqual(3, testModule.CallCount);
        }
예제 #5
0
 public bool?Run()
 {
     Logger.Info("Started task: {0}", GetType().Name);
     Initialize();
     try
     {
         Execute();
         TaskExecuter.StartExecuting();
         return(true);
     }
     catch (Exception e)
     {
         Logger.ErrorException("Could not execute task " + GetType().Name, e);
         OnError(e);
         return(false);
     }
     finally
     {
         TaskExecuter.Discard();
         Logger.Info("Finished task: {0}", GetType().Name);
     }
 }
예제 #6
0
 protected override void OnActionExecuted(ActionExecutedContext filterContext)
 {
     ViewBag.IsAuthenticated = HttpContext.User.Identity.IsAuthenticated;
     ViewBag.Roles           = GetRoles();
     ViewBag.CanSeeAdminLink = AdminController.CanSeeAdminLink(ViewBag.Roles);
     if (ViewBag.IsAuthenticated)
     {
         var webAccount = DocumentSession.Load <WebAccount>(HttpContext.User.Identity.Name);
         ViewBag.Account = webAccount;
     }
     try {
         using (DocumentSession) {
             if (filterContext.Exception == null)
             {
                 DocumentSession.SaveChanges();
                 TaskExecuter.StartExecuting();
             }
         }
     } finally {
         TaskExecuter.Discard();
     }
 }
예제 #7
0
        public void Execute(IJobExecutionContext context)
        {
            TaskExecuter te = new TaskExecuter();
            TaskGetter   tg = new TaskGetter();

            var obj = tg.GetTask();

            uOw.UpdateContext();

            if (obj == null)
            {
                return;
            }

            var task1   = parsermanager.Get(obj.TaskId);
            var endTime = parsermanager.Get(obj.TaskId).EndDate;

            if (endTime == null)
            {
                te.ExecuteTask(obj.TaskId, obj.GoodUrl);
                var task_s = parsermanager.Get(obj.TaskId);
                task_s.Status = (Common.Enum.Status.Infinite);
                parsermanager.Update(task_s);
            }
            else if (endTime != null && DateTime.Now <= endTime)
            {
                te.ExecuteTask(obj.TaskId, obj.GoodUrl);
                var task_s = parsermanager.Get(obj.TaskId);
                task_s.Status = (Common.Enum.Status.Coming);
                parsermanager.Update(task_s);
            }
            else
            {
                var task_s = parsermanager.Get(obj.TaskId);
                task_s.Status = (Common.Enum.Status.Finished);
                parsermanager.Update(task_s);
            }
        }