public virtual void PushTask(T task) { scheduleStatus = TaskScheduleStatus.WaitForTask; lock (TaskQueue) { TaskQueue.Enqueue(task); } DispatchTask(); }
/// <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); }
public void NoMoreTask() { scheduleStatus = TaskScheduleStatus.NoMoreTask; CheckAllTaskComplte(); }