/** * @covers Gloubster\Worker\Worker::addServer */ public function testAddServer() { $host = 'kangaroos-kenobi'; $port = 23400; $that = $this; $this->gearmanWorker->expects($this->once())->method('addServer')->will($this->returnCallback(function ($hostcalled, $portcalled) use($that, $host, $port) { $that->assertEquals($port, $portcalled); $that->assertEquals($host, $hostcalled); })); $this->object->addServer($host, $port); }
public function execute(InputInterface $input, OutputInterface $output) { $configuration = new Configuration(file_get_contents(__DIR__ . '/../../../config/config.json')); $resolver = new SpawnResolver($configuration, CpuInfo::detect()); $factory = new Factory(); $classname = $resolver->getClassName(); if ($input->getOption('verbose')) { $outputLogger = new StreamHandler('php://stdout'); } else { $outputLogger = new NullHandler(); } $workers = new \ArrayIterator(); for ($i = 1; $i <= $resolver->getSpawnQuantity(); $i++) { $output->write("Launching Worker <info>{$i}</info> ..."); $logger = new Logger('Worker-' . $i); $logger->pushHandler($outputLogger); $logger->pushHandler(new RotatingFileHandler(__DIR__ . '/../../../logs/worker-' . $i . '.logs', 3)); $worker = new Worker('Worker-' . $i, new \GearmanWorker(), $logger); foreach ($configuration['gearman-servers'] as $server) { $worker->addServer($server['host'], $server['port']); } $worker->setFunction(new $classname($configuration, $logger, $factory)); $workers->append($worker); $output->writeln("Success !"); } $manager = new ProcessManager(new EventDispatcher()); $manager->process($workers, function (Worker $worker) { $worker->run(); }); }