all() публичный статический Метод

Return all workers known to Resque as instantiated instances.
public static all ( ) : array
Результат array
Пример #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if ($input->getOption('all')) {
         $workers = \Resque_Worker::all();
     } else {
         $worker = \Resque_Worker::find($input->getArgument('id'));
         if (!$worker) {
             $availableWorkers = \Resque_Worker::all();
             if (!empty($availableWorkers)) {
                 throw new \RuntimeException('A running worker must be specified');
             }
         }
         $workers = $worker ? array($worker) : array();
     }
     if (count($workers) <= 0) {
         $output->writeln(array('No workers running', ''));
         return;
     }
     $signal = $input->getOption('force') ? SIGTERM : SIGQUIT;
     foreach ($workers as $worker) {
         $output->writeln(sprintf('%s %s...', $signal === SIGTERM ? 'Force stopping' : 'Stopping', $worker));
         list(, $pid) = explode(':', (string) $worker);
         posix_kill($pid, $signal);
     }
     $output->writeln('');
 }
Пример #2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $workers = \Resque_Worker::all();
     if (count($workers) <= 0) {
         $output->writeln(array('No workers running', ''));
         return 0;
     }
     $queueFilter = $input->getArgument('queue');
     if ('*' === $queueFilter) {
         $queueFilter = false;
     }
     $workerOutput = array();
     $longestName = 0;
     foreach ($workers as $worker) {
         $queues = $worker->queues(true) ?: array('*');
         if ($queueFilter) {
             if (!in_array('*', $queues) && !in_array($queueFilter, $queues)) {
                 continue;
             }
         }
         $name = (string) $worker;
         $job = ($job = $worker->job()) ? 'Processing ' . json_encode($job) : 'Waiting for job';
         if (strlen($job) > 20) {
             $job = substr($job, 0, 20) . '...';
         }
         $workerOutput[] = array($name, $job);
         if (($thisLength = strlen($name)) > $longestName) {
             $longestName = $thisLength;
         }
     }
     $output->writeln(sprintf('%-' . $longestName . "s\t%s", 'Worker ID', 'Current Job'));
     $loopFormat = '%-' . $longestName . "s\t<info>%s</info>";
     foreach ($workerOutput as $worker) {
         $output->writeln(sprintf($loopFormat, $worker[0], $worker[1]));
     }
     $output->writeln('');
 }
Пример #3
0
 /**
  * Returns the number of connected Redis workers
  *
  * @return int
  */
 public static function RedisWorkersCount()
 {
     return count(Resque_Worker::all());
 }
Пример #4
0
 /**
  * @return array
  */
 public function getWorkers()
 {
     return \array_map(function ($worker) {
         return new Worker($worker);
     }, \Resque_Worker::all());
 }
Пример #5
0
 public function workers(Request $request, Response $response, array $args)
 {
     $data = [];
     $settings = loadsettings();
     $REDIS_BACKEND = $settings['resque']['REDIS_BACKEND'];
     if (!empty($REDIS_BACKEND)) {
         \Resque::setBackend($REDIS_BACKEND);
     }
     $workerlist = \Resque_Worker::all();
     $workers = [];
     foreach ($workerlist as $worker) {
         $job = $worker->job();
         if (empty($job)) {
             $job = "Idle";
         }
         $workers[] = ['name' => (string) $worker, 'job' => $job];
     }
     $data['workers'] = $workers;
     $this->view->render($response, 'workers.twig', $data);
     return $response;
 }
Пример #6
0
 public function testDeadWorkerCleanUpDoesNotCleanUnknownWorkers()
 {
     // Register a bad worker on this machine
     $worker = new Resque_Worker('jobs');
     $worker->setLogger(new Resque_Log());
     $workerId = explode(':', $worker);
     $worker->setId($workerId[0] . ':1:jobs');
     $worker->registerWorker();
     // Register some other false workers
     $worker = new Resque_Worker('jobs');
     $worker->setLogger(new Resque_Log());
     $worker->setId('my.other.host:1:jobs');
     $worker->registerWorker();
     $this->assertEquals(2, count(Resque_Worker::all()));
     $worker->pruneDeadWorkers();
     // my.other.host should be left
     $workers = Resque_Worker::all();
     $this->assertEquals(1, count($workers));
     $this->assertEquals((string) $worker, (string) $workers[0]);
 }
Пример #7
0
 /**
  * Return a list of workers
  *
  * @return array of workers
  */
 public function getWorkers()
 {
     return (array) \Resque_Worker::all();
 }
Пример #8
0
 /**
  * Print some stats about the workers
  */
 protected function stats()
 {
     $this->outputTitle('Workers statistics');
     $this->output->outputLine();
     $this->output->outputLine('Jobs Stats', 'subtitle');
     $this->output->outputLine("   Processed Jobs : " . \Resque_Stat::get('processed'));
     $this->output->outputLine("   Failed Jobs    : " . \Resque_Stat::get('failed'), 'failure');
     $this->output->outputLine();
     $this->output->outputLine('Workers Stats', 'subtitle');
     $workers = \Resque_Worker::all();
     $this->output->outputLine("   Active Workers : " . count($workers));
     if (!empty($workers)) {
         foreach ($workers as $worker) {
             $this->output->outputLine("    Worker : " . $worker, 'bold');
             $this->output->outputLine("     - Started on     : " . \Resque::Redis()->get('worker:' . $worker . ':started'));
             $this->output->outputLine("     - Uptime         : " . $this->formatDateDiff(new \DateTime(\Resque::Redis()->get('worker:' . $worker . ':started'))));
             $this->output->outputLine("     - Processed Jobs : " . $worker->getStat('processed'));
             $worker->getStat('failed') == 0 ? $this->output->outputLine("     - Failed Jobs    : " . $worker->getStat('failed')) : $this->output->outputLine("     - Failed Jobs    : " . $worker->getStat('failed'), 'failure');
         }
     }
     $this->output->outputLine("\n");
 }