예제 #1
0
		public static SysTaskSettings GetSettings()
		{
			SysTaskSettings settings = (SysTaskSettings)ConfigurationBroker.GetSection("sysTaskSettings");

			if (settings == null)
				settings = new SysTaskSettings();

			return settings;
		}
예제 #2
0
        public static SysTaskSettings GetSettings()
        {
            SysTaskSettings settings = (SysTaskSettings)ConfigurationBroker.GetSection("sysTaskSettings");

            if (settings == null)
            {
                settings = new SysTaskSettings();
            }

            return(settings);
        }
예제 #3
0
        /// <summary>
        /// 执行任务
        /// </summary>
        public void ExecuteTask()
        {
            this.Status = SysTaskActivityStatus.Running;

            if (this.Task != null)
            {
                try
                {
                    //不需要保存在待办任务中
                    //SysTaskAdapter.Instance.Update(this.Task);

                    ISysTaskExecutor executor = SysTaskSettings.GetSettings().GetExecutor(this.Task.TaskType);

                    SysAccomplishedTask accomplishedTask = executor.Execute(this.Task);

                    //SysAccomplishedTask accomplishedTask = SysAccomplishedTaskAdapter.Instance.Load(this.Task.TaskID);

                    if (accomplishedTask != null && accomplishedTask.Status == SysTaskStatus.Aborted)
                    {
                        throw new ApplicationException(string.Format("执行ID为{0}的任务失败,错误为\n{1}",
                                                                     accomplishedTask.TaskID, accomplishedTask.StatusText));
                    }
                }
                catch (System.Exception ex)
                {
                    DateTime now = SNTPClient.AdjustedTime;

                    this.Status     = SysTaskActivityStatus.Aborted;
                    this.EndTime    = now;
                    this.StatusText = ex.ToString();

                    SysTaskProcessRuntime.ProcessContext.AffectedActivities.AddOrReplace(this);

                    this.Process.Status  = SysTaskProcessStatus.Aborted;
                    this.Process.EndTime = now;
                    SysTaskProcessRuntime.ProcessContext.AffectedProcesses.AddOrReplace(this.Process);
                }
            }
        }