protected function execute(InputInterface $input, OutputInterface $output)
{
$id = $input->getArgument('id');
// Do a cleanup
$worker = new Resque\Worker('*');
$worker->cleanup();
if ($id) {
if (false === ($worker = Resque\Worker::hostWorker($id))) {
$this->log('There is no worker with id "' . $id . '".', Resque\Logger::ERROR);
return;
}
$workers = array($worker);
} else {
$workers = Resque\Worker::hostWorkers();
}
if (!count($workers)) {
$this->log('<warn>There are no workers on this host.<warn>');
}
foreach ($workers as $worker) {
if (posix_kill($worker->getPid(), SIGUSR2)) {
$this->log('Worker <pop>' . $worker . '</pop> USR2 signal sent.');
} else {
$this->log('Worker <pop>' . $worker . '</pop> <error>could not send USR2 signal.</error>');
}
}
}