Esempio n. 1
0
        public void OnNext(ICompletedTask value)
        {
            Logger.Log(Level.Info, "Received ICompletedTask");
            UpdateMetrics(TestSystemState.TaskCompleted);

            value.ActiveContext.Dispose();
        }
 public void OnNext(ICompletedTask value)
 {
     Assert.Equal(TaskId, value.Id);
     Assert.Equal(ContextId0, value.ActiveContext.Id);
     Logger.Log(Level.Info, CompletedTaskReceived);
     value.ActiveContext.Dispose();
 }
Esempio n. 3
0
        /// <summary>
        /// ICompletedTask handler. It is called when a task is completed. The following action will be taken based on the System State:
        /// Case TasksRunning
        ///     Updates task state to TaskCompleted
        ///     If all tasks are completed, sets system state to TasksCompleted and then go to Done action
        /// Case ShuttingDown
        ///     Updates task state to TaskCompleted
        ///     Try to recover
        /// Other cases - not expected
        /// </summary>
        /// <param name="completedTask">The link to the completed task</param>
        public void OnNext(ICompletedTask completedTask)
        {
            Logger.Log(Level.Info, "Received ICompletedTask {0}, with systemState {1} in retry# {2}.", completedTask.Id, _systemState.CurrentState, _numberOfRetries);
            lock (_lock)
            {
                switch (_systemState.CurrentState)
                {
                case SystemState.TasksRunning:
                    _taskManager.RecordCompletedTask(completedTask);
                    if (_taskManager.AreAllTasksCompleted())
                    {
                        _systemState.MoveNext(SystemStateEvent.AllTasksAreCompleted);
                        Logger.Log(Level.Info, "All tasks are completed, systemState {0}", _systemState.CurrentState);
                        DoneAction();
                    }
                    break;

                case SystemState.ShuttingDown:
                    // The task might be in running state or waiting for close, record the completed task
                    _taskManager.RecordCompletedTask(completedTask);
                    TryRecovery();
                    break;

                default:
                    UnexpectedState(completedTask.Id, "ICompletedTask");
                    break;
                }
            }
        }
 public void OnNext(ICompletedTask value)
 {
     // Verify the completion of Task on Context with ContextId0.
     Assert.Equal(TaskId, value.Id);
     Assert.Equal(ContextId0, value.ActiveContext.Id);
     Logger.Log(Level.Info, CompletedTaskReceived);
     value.ActiveContext.Dispose();
 }
Esempio n. 5
0
 /// <summary>
 /// Log the task id and ICompletedTask
 /// Close the rest of the running tasks, then dispose the context
 /// </summary>
 public void OnNext(ICompletedTask value)
 {
     lock (_lock)
     {
         Logger.Log(Level.Info, CompletedTaskMessage + value.Id);
         CloseRunningTasks();
         value.ActiveContext.Dispose();
     }
 }
Esempio n. 6
0
        public void OnNext(ICompletedTask value)
        {
            Logger.Log(Level.Info, "HelloDriver received completed task {0}", value.Id);
            var taskConfiguration = TaskConfiguration.ConfigurationModule
                                    .Set(TaskConfiguration.Identifier, "FailedTask")
                                    .Set(TaskConfiguration.Task, GenericType <FailedTask> .Class)
                                    .Build();

            value.ActiveContext.SubmitTask(taskConfiguration);
        }
Esempio n. 7
0
 public void OnNext(ICompletedTask value)
 {
     using (LOGGER.LogFunction("HelloSimpleEventHandlers::CompletedTask received"))
     {
         LOGGER.Log(Level.Info, string.Format(CultureInfo.InvariantCulture, "Received CompletedTask: {0}, task id: {1}", value.Id, _taskContext.CurrentTaskId()));
         _activeContext = value.ActiveContext;
         _taskContext.UpdateTaskStatus(value.Id, TaskStatus.Completed);
         _taskContext.TaskCompleted++;
         SubmitNextTask(value.ActiveContext);
     }
 }
Esempio n. 8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="value"></param>
 public void OnNext(ICompletedTask value)
 {
     Console.WriteLine("task completed {0}", value.Id);
     try
     {
         value.ActiveContext.Dispose();
     }
     catch (Exception ex)
     {
         Console.WriteLine("faile to dispose task context {0}", ex.ToString());
     }
 }
Esempio n. 9
0
 /// <summary>
 /// This method is called when receiving ICompletedTask event during task running or system shutting down.
 /// If it is master task and if the master task was running, mark _masterTaskCompletedRunning true. That indicates
 /// master task has successfully completed, which means the system has got the result from master task.
 /// Removes the task from running tasks if it was running
 /// Changes the task state from RunningTask to CompletedTask if the task was running
 /// Change the task stat from TaskWaitingForClose to TaskClosedByDriver if the task was in TaskWaitingForClose state
 /// </summary>
 internal void RecordCompletedTask(ICompletedTask completedTask)
 {
     if (completedTask.Id.Equals(_masterTaskId))
     {
         if (GetTaskInfo(completedTask.Id).TaskState.CurrentState.Equals(TaskState.TaskRunning))
         {
             _masterTaskCompletedRunning = true;
         }
     }
     _runningTasks.Remove(completedTask.Id);
     UpdateState(completedTask.Id, TaskStateEvent.CompletedTask);
 }
Esempio n. 10
0
        /// <summary>
        /// Specifies what to do when the task is completed
        /// In this case just disposes off the task
        /// </summary>
        /// <param name="completedTask">The link to the completed task</param>
        public void OnNext(ICompletedTask completedTask)
        {
            lock (_completedTasks)
            {
                Logger.Log(Level.Info,
                           string.Format("Received completed task message from task Id: {0}", completedTask.Id));
                _completedTasks.Add(completedTask);

                if (AreIMRUTasksCompleted())
                {
                    ShutDownAllEvaluators();
                }
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Specfies what to do when the task is completed
        /// In this case just disposes off the task
        /// </summary>
        /// <param name="completedTask">The link to the completed task</param>
        public void OnNext(ICompletedTask completedTask)
        {
            _completedTasks.Add(completedTask);

            if (_completedTasks.Count != _dataSet.Count + 1)
            {
                return;
            }

            foreach (var task in _completedTasks)
            {
                Logger.Log(Level.Verbose, string.Format("Disposing task: {0}", task.Id));
                task.ActiveContext.Dispose();
            }
        }
Esempio n. 12
0
        public void OnNext(ICompletedTask value)
        {
            using (Logger.LogFunction("HelloSimpleEventHandlers::CompletedTask received"))
            {
                Logger.Log(Level.Info, "Received CompletedTask: {0}, task id: {1}.", value.Id, _taskContext.CurrentTaskId());

                var messageStr = value.Message == null || value.Message.Length == 0 ?
                                 string.Empty : ByteUtilities.ByteArraysToString(value.Message);
                Logger.Log(Level.Verbose, "Message received from CompletedTask {0} is: [{1}]", value.Id, messageStr);

                _taskContext.UpdateTaskStatus(value.Id, TaskStatus.Completed);
                _taskContext.TaskCompleted++;
                SubmitNextTask(value.ActiveContext);
            }
        }
Esempio n. 13
0
 public void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, CompletedTaskValidationMessage + ". Task completed: " + value.Id);
     lock (_compeletedTaskLock)
     {
         _completedTasks.Add(value);
         if (_completedTasks.Count < 2)
         {
             return;
         }
         foreach (var t in _completedTasks)
         {
             t.ActiveContext.Dispose();
         }
     }
 }
Esempio n. 14
0
        /// <summary>
        /// This method is called when receiving ICompletedTask event during task running or system shutting down.
        /// If it is master task, if the master task was running or if the task message indicates the task has been done,
        /// mark _masterTaskCompletedRunning true. That indicates master task has successfully completed, which means the
        /// system has got the result from master task.
        /// Removes the task from running tasks if it was running
        /// Changes the task state from RunningTask to CompletedTask if the task was running
        /// Change the task stat from TaskWaitingForClose to TaskClosedByDriver if the task was in TaskWaitingForClose state
        /// </summary>
        internal void RecordCompletedTask(ICompletedTask completedTask)
        {
            if (completedTask.Id.Equals(_masterTaskId))
            {
                string message = "";
                if (completedTask.Message != null)
                {
                    message = ByteUtilities.ByteArraysToString(completedTask.Message);
                    Logger.Log(Level.Info, "UpdateTask message {0}", message);
                }

                if (message.Equals(TaskManager.UpdateTaskCompleted))
                {
                    _masterTaskCompletedRunning = true;
                }
            }
            _runningTasks.Remove(completedTask.Id);
            UpdateState(completedTask.Id, TaskStateEvent.CompletedTask);
        }
Esempio n. 15
0
 public void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, "Completed Task" + value.Id);
     Logger.Log(Level.Info, ValidationMessage);
     value.ActiveContext.Dispose();
 }
Esempio n. 16
0
 public void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, "Task completed: " + value.Id);
     VerifyContextTaskMapping(value.Id, value.ActiveContext.Id);
     value.ActiveContext.Dispose();
 }
Esempio n. 17
0
 public void OnNext(ICompletedTask value)
 {
     // Log on task completion to signal a passed test.
     Logger.Log(Level.Warning, CompletedValidationMessage);
     value.ActiveContext.Dispose();
 }
Esempio n. 18
0
 public void OnNext(ICompletedTask value)
 {
     // Should only receive one CompletedTask, as validated.
     Logger.Log(Level.Info, CompletedTaskReceived);
     value.ActiveContext.Dispose();
 }
Esempio n. 19
0
 public void OnNext(ICompletedTask completedTask)
 {
     CheckMsgOrder(completedTask);
     completedTask.ActiveContext.Dispose();
 }
 public override void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, ExpectedCompletedTask);
 }
Esempio n. 21
0
 /// <summary>
 /// A simple ICompletedTask handler.
 /// </summary>
 /// <param name="value"></param>
 void IObserver <ICompletedTask> .OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, "Received ICompletedTask: {0} with evaluator id: {1}.", value.Id, value.ActiveContext.EvaluatorId);
     value.ActiveContext.Dispose();
 }
Esempio n. 22
0
 public void OnNext(ICompletedTask value)
 {
     value.ActiveContext.Dispose();
 }
Esempio n. 23
0
 /// <summary>
 /// This method is called when receiving ICompletedTask event during task running or system shutting down.
 /// Removes the task from running tasks if it was running
 /// Changes the task state from RunningTask to CompletedTask if the task was running
 /// Change the task stat from TaskWaitingForClose to TaskClosedByDriver if the task was in TaskWaitingForClose state
 /// </summary>
 /// <param name="completedTask"></param>
 internal void RecordCompletedTask(ICompletedTask completedTask)
 {
     _runningTasks.Remove(completedTask.Id);
     UpdateState(completedTask.Id, TaskStateEvent.CompletedTask);
 }
Esempio n. 24
0
 public void OnNext(ICompletedTask value)
 {
     throw new Exception("Driver should not have received a completed Task.");
 }
Esempio n. 25
0
 /// <summary>
 /// Log the task id and dispose the context
 /// </summary>
 public void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, CompletedTaskMessage + value.Id);
     value.ActiveContext.Dispose();
 }
Esempio n. 26
0
 public void OnNext(ICompletedTask value)
 {
     IncrementFinishedTask(Optional <IActiveContext> .Of(value.ActiveContext));
 }
Esempio n. 27
0
 public void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, TaskCompletedMessage);
     throw new Exception("Did not expect a completed task.");
 }
Esempio n. 28
0
 public void OnNext(ICompletedTask value)
 {
     throw new Exception("Did not expect a completed task.");
 }
Esempio n. 29
0
 public async Task DispatchCompletedTaskEvent(ICompletedTask completedTaskEvent)
 {
     await DispatchAsync(_completedTaskDispatcher, completedTaskEvent);
 }
Esempio n. 30
0
 public void OnNext(ICompletedTask value)
 {
     Logger.Log(Level.Info, "Task completed: " + value.Id);
     Assert.Equal(TaskId + "1", value.Id);
     value.ActiveContext.Dispose();
 }
Esempio n. 31
0
 public void OnNext(ICompletedTask value)
 {
     // TODO[JIRA REEF-1343]: fail the test if receive ICompletedTask after failed evaluator
     Logger.Log(Level.Info, "ICompletedTask");
 }