Exemple #1
0
        public void OnNext(IRunningTask value)
        {
            lock (_lockObj)
            {
                var evaluatorId = value.ActiveContext.EvaluatorId;
                if (!_evaluators.ContainsKey(evaluatorId))
                {
                    throw new Exception("Unexpected Running Task from Evaluator " + evaluatorId);
                }

                Logger.Log(Level.Info, "{0} running task with ID [{1}] from evaluator with ID [{2}]",
                           _evaluators[evaluatorId], value.Id, evaluatorId);

                if (_evaluators[evaluatorId] == EvaluatorState.Expected)
                {
                    value.Send(Encoding.UTF8.GetBytes("Hello from driver!"));
                    _evaluators[evaluatorId] = EvaluatorState.RecoveredRunning;
                }
                else if (_evaluators[value.ActiveContext.EvaluatorId] == EvaluatorState.NewAllocated)
                {
                    _evaluators[evaluatorId] = EvaluatorState.NewRunning;

                    var newRunningCount = CountState(EvaluatorState.NewRunning);

                    // Kill itself in order for the driver to restart it.
                    if (!_isRestart && newRunningCount == NumberOfTasksToSubmit)
                    {
                        Process.GetCurrentProcess().Kill();
                    }

                    if (_isRestart)
                    {
                        value.Send(Encoding.UTF8.GetBytes("Hello from driver!"));
                        if (newRunningCount == NumberOfTasksToSubmitOnRestart)
                        {
                            Logger.Log(Level.Info, "Received all requested new running tasks.");
                        }
                    }
                }
            }
        }
Exemple #2
0
 public void OnNext(IRunningTask runningTask)
 {
     LOGGER.Log(Level.Info, string.Format(CultureInfo.InvariantCulture, "TaskMessegingRunningTaskHandler: {0} is to send message {1}.", runningTask.Id, Message));
     runningTask.Send(ByteUtilities.StringToByteArrays(Message));
 }
 public void OnNext(IRunningTask value)
 {
     _taskContext.UpdateTaskStatus(_taskContext.CurrentTaskId(), TaskStatus.Running);
 }
Exemple #4
0
 public void OnNext(IRunningTask runningTask)
 {
     Logger.Log(Level.Info, SendingMessageToTaskLog);
     runningTask.Send(ByteUtilities.StringToByteArrays(Message));
 }