예제 #1
0
 public virtual void PushTask(T task)
 {
     scheduleStatus = TaskScheduleStatus.WaitForTask;
     lock (TaskQueue)
     {
         TaskQueue.Enqueue(task);
     }
     DispatchTask();
 }
예제 #2
0
        /// <summary>
        /// 上报任务调度状态
        /// </summary>
        /// <param name="taskid"></param>
        /// <param name="taskversionid"></param>
        /// <param name="status"></param>
        private void UploadStatus(string taskid, string taskversionid, TaskScheduleStatus status, string nextruntime = "")
        {
            var req2 = new UpdateTaskScheduleStatusRequest()
            {
                NodeId = GlobalNodeConfig.NodeID, Source = Source.Node, ScheduleStatus = status, TaskId = int.Parse(taskid), TaskVersionId = int.Parse(taskversionid), NextRunTime = nextruntime
            };
            var r3 = NodeProxy.PostToServer <EmptyResponse, UpdateTaskScheduleStatusRequest>(ProxyUrl.UpdateTaskScheduleStatus_Url, req2);

            if (r3.Status != ResponesStatus.Success)
            {
                ShowCommandLog("更新任务调度状态(" + status.description() + ")失败,请求Url:" + ProxyUrl.UpdateTaskScheduleStatus_Url + ",请求参数:" + JsonConvert.SerializeObject(req2) + ",返回参数:" + JsonConvert.SerializeObject(r3));
            }
        }
 /// <summary>
 /// 任务池中的任务进行更新
 /// </summary>
 /// <param name="taskid"></param>
 /// <param name="taskruntimeinfo"></param>
 /// <returns></returns>
 public bool UpdateTaskSchduleStatus(string taskid, TaskScheduleStatus status)
 {
     lock (_locktag)
     {
         if (TaskRuntimePool.ContainsKey(taskid))
         {
             TaskRuntimePool[taskid].TaskModel.ispauseschedule =
                 status == TaskScheduleStatus.PauseSchedule ? 1 : 0;
             TaskRuntimePool[taskid].TaskModel.taskschedulestatus = (int)status;
         }
     }
     //bool flag =Remove(taskid);
     //if (!flag)
     //{
     //    return false;
     //}
     //Add(taskid, taskruntimeinfo);
     return(true);
 }
예제 #4
0
 public void NoMoreTask()
 {
     scheduleStatus = TaskScheduleStatus.NoMoreTask;
     CheckAllTaskComplte();
 }