コード例 #1
0
        public void WorkerTaskFinished(uint taskId, string jobName, EGridJobTaskState state)
        {
            if (_activeTask.ParentJob.Name == jobName && _activeTask.TaskId == taskId)
            {
                _activeTask.State = state;

                var localSaved = _tempReceivedFiles.FirstOrDefault(x => x.Direction == EGridJobFileDirection.WorkerOutput && x.ShareMode == EGridJobFileShare.PerEachTask);
                if (localSaved != null)
                {
                    _activeTask.OutputFile = new GridJobFile {
                        Bytes     = localSaved.Bytes,
                        CheckSum  = localSaved.CheckSum,
                        FileName  = localSaved.FileName,
                        Direction = EGridJobFileDirection.WorkerOutput,
                        ShareMode = EGridJobFileShare.PerEachTask
                    };
                }

                IsAcceptingNewTasks = !_isDisconnecting;
                Logger.Info($"Worker {this} finish task {_activeTask}");
                return;
            }

            Logger.Warn($"Worker {this} finish not own active task '{_activeTask}', something went wrong (response: [taskId={taskId}, jobName={jobName}])");
        }
コード例 #2
0
 public void Read(PacketBuffer buffer)
 {
     _taskId   = buffer.ReadUInt32();
     _jobName  = buffer.ReadString();
     _jobState = (EGridJobTaskState)buffer.ReadInt16();
 }
コード例 #3
0
 public PacketWorkerTaskFinish(GridJobTask task)
 {
     _taskId   = task.TaskId;
     _jobName  = task.ParentJob.Name;
     _jobState = task.State;
 }