Пример #1
0
 public MonitorConfig(string nodeId, int innterval, bool needRecordLog, ITmSdk sdk)
 {
     this._nodeId = nodeId;
     this._interval = innterval;
     this._needRecordLog = needRecordLog;
     this._sdk = sdk;
 }
Пример #2
0
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                var taskId = context.JobDetail.Key.Name;
                var taskInfo = TaskPoolManager.Instance.GetByTaskId(taskId);

                if (taskInfo == null || taskInfo.ExeTask == null || taskInfo.TmSdk == null)
                {
                    this._logger.Error("任务引用为空 TaskId:{0}", taskId);
                    return;
                }

                taskInfo.Lock.Invoke(() =>
                {
                    this._sdk = taskInfo.TmSdk;

                    try
                    {
                        var startTaskResult = this._sdk.StartTask(taskInfo.TaskInfo.NodeId, taskInfo.TaskInfo.Id);
                        if (startTaskResult.HasError)
                        {
                            this._logger.Error("sdk start job error:{0}", startTaskResult.ErrorMessage);
                            return;
                        }

                        this._jobId = startTaskResult.Data;

                        this._logger.Info("start start, taskId:{0};jobId:{1}", taskId, this._jobId);

                        try
                        {
                            string resultMessage = null;
                            var taskResult = taskInfo.ExeTask.Run(out resultMessage);

                            this._logger.Info("task completed, taskId:{0};jobId:{1}", taskId, this._jobId);

                            var endTaskResult = this._sdk.CompleteTask(this._jobId, taskResult, resultMessage);
                            if (endTaskResult.HasError)
                            {
                                this._logger.Error("sdk complete job error:{0}", startTaskResult.ErrorMessage);
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            this._sdk.CompleteTask(this._jobId, false, string.Format("执行任务异常:{0}", ex.Message));
                            this._logger.Error("task job error:{0}", ex.Message);
                        }
                        finally
                        {

                        }
                    }
                    catch (Exception ex)
                    {
                        this._logger.Error("task job error:{0}", ex.Message);
                    }
                });
            }
            catch (Exception ex)
            {
                this._logger.Error("执行任务严重错误:{0}", ex.Message);
            }
        }
Пример #3
0
        public void Init(string host, string nodeId, string rootPath)
        {
            lock (LockObj)
            {
                this._sdkHost = host;
                this._nodeId = nodeId;
                this._rootPath = rootPath;
                this._sdk = SdkFactory.CreateSdk(new SdkConfig(host));

                if (this._taskInfos.Any())
                {
                    foreach (var taskRuntimeInfo in this._taskInfos)
                    {
                        AppDomain.Unload(taskRuntimeInfo.Value.AppDomain);
                    }
                    this._taskInfos.Clear();
                }

                var th = new Thread(new ThreadStart(LoadTaskThreadMethod));
                th.Start();
            }
        }