public isBlockingTask ( string $taskName ) : boolean | ||
$taskName | string | |
Результат | boolean |
/** * @param TaskInterface $task * @param ContextInterface $context * * @return TaskResultInterface * @throws RuntimeException */ private function runTask(TaskInterface $task, ContextInterface $context) { try { $this->eventDispatcher->dispatch(TaskEvents::TASK_RUN, new TaskEvent($task, $context)); $result = $task->run($context); } catch (RuntimeException $e) { $result = TaskResult::createFailed($task, $context, $e->getMessage()); } if (!$result instanceof TaskResultInterface) { throw RuntimeException::invalidTaskReturnType($task); } if (!$result->isPassed() && !$this->grumPHP->isBlockingTask($task->getName())) { $result = TaskResult::createNonBlockingFailed($result->getTask(), $result->getContext(), $result->getMessage()); } if (!$result->isPassed()) { $e = new RuntimeException($result->getMessage()); $this->eventDispatcher->dispatch(TaskEvents::TASK_FAILED, new TaskFailedEvent($task, $context, $e)); return $result; } $this->eventDispatcher->dispatch(TaskEvents::TASK_COMPLETE, new TaskEvent($task, $context)); return $result; }
function it_does_not_stop_on_a_non_blocking_failed_task_if_stop_on_failure(GrumPHP $grumPHP, TaskInterface $task1, TaskInterface $task2, ContextInterface $context) { $grumPHP->stopOnFailure()->willReturn(true); $grumPHP->isBlockingTask('task1')->willReturn(false); $task1->run($context)->willReturn(TaskResult::createFailed($task1->getWrappedObject(), $context->getWrappedObject(), '')); $task2->run($context)->shouldBeCalled(); $this->run($context)->shouldHaveCount(2); }