Differential D10939 Diff 26273 src/infrastructure/daemon/workers/management/PhabricatorWorkerManagementRetryWorkflow.php
Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/daemon/workers/management/PhabricatorWorkerManagementRetryWorkflow.php
- This file was added.
<?php | |||||
final class PhabricatorWorkerManagementRetryWorkflow | |||||
extends PhabricatorWorkerManagementWorkflow { | |||||
public function didConstruct() { | |||||
$this | |||||
->setName('retry') | |||||
->setExamples('**retry** --id __id__') | |||||
->setSynopsis( | |||||
pht( | |||||
'Retry selected tasks which previously failed permanently or '. | |||||
'were cancelled. Only archived, unsuccessful tasks can be '. | |||||
'retried.')) | |||||
->setArguments($this->getTaskSelectionArguments()); | |||||
} | |||||
public function execute(PhutilArgumentParser $args) { | |||||
$console = PhutilConsole::getConsole(); | |||||
$tasks = $this->loadTasks($args); | |||||
foreach ($tasks as $task) { | |||||
if (!$task->isArchived()) { | |||||
$console->writeOut( | |||||
"**<bg:yellow> %s </bg>** %s\n", | |||||
pht('ACTIVE'), | |||||
pht( | |||||
'%s is already in the active task queue.', | |||||
$this->describeTask($task))); | |||||
continue; | |||||
} | |||||
$result_success = PhabricatorWorkerArchiveTask::RESULT_SUCCESS; | |||||
if ($task->getResult() == $result_success) { | |||||
$console->writeOut( | |||||
"**<bg:yellow> %s </bg>** %s\n", | |||||
pht('SUCCEEDED'), | |||||
pht( | |||||
'%s has already succeeded, and can not be retried.', | |||||
$this->describeTask($task))); | |||||
continue; | |||||
} | |||||
$task->unarchiveTask(); | |||||
$console->writeOut( | |||||
"**<bg:green> %s </bg>** %s\n", | |||||
pht('QUEUED'), | |||||
pht( | |||||
'%s was queued for retry.', | |||||
$this->describeTask($task))); | |||||
} | |||||
return 0; | |||||
} | |||||
} |