Resque\Worker::setInterval PHP Метод

setInterval() публичный Метод

Set the worker interval
public setInterval ( integer $interval )
$interval integer The worker interval
    public function setInterval($interval)
    {
        if ($this->status != self::STATUS_NEW) {
            throw new \RuntimeException('Cannot set worker interval after worker has started working');
        }
        $this->interval = $interval;
    }

Usage Example

Пример #1
0
 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(), SIGTERM)) {
             $child = pcntl_fork();
             // Failed
             if ($child == -1) {
                 $this->log('Unable to fork, worker ' . $worker . ' has been stopped.', Resque\Logger::CRITICAL);
                 // Parent
             } elseif ($child > 0) {
                 $this->log('Worker <pop>' . $worker . '</pop> restarted.');
                 continue;
                 // Child
             } else {
                 $new_worker = new Resque\Worker($worker->getQueues(), $worker->getBlocking());
                 $new_worker->setInterval($worker->getInterval());
                 $new_worker->setTimeout($worker->getTimeout());
                 $new_worker->setMemoryLimit($worker->getMemoryLimit());
                 $new_worker->setLogger($this->logger);
                 $new_worker->work();
                 $this->log('Worker <pop>' . $worker . '</pop> restarted as <pop>' . $new_worker . '</pop>.');
             }
         } else {
             $this->log('Worker <pop>' . $worker . '</pop> <error>could not send TERM signal.</error>');
         }
     }
     exit(0);
 }
All Usage Examples Of Resque\Worker::setInterval