/** * @param Manager $manager * @param Server $server */ public function __construct(Manager $manager, Server $server) { if ($manager instanceof ProcessManager) { $manager->setWorker(realpath(__DIR__ . "/../../bin/worker.php")); } if (!$manager instanceof GroupProcessManager) { $manager = new GroupProcessManager($manager); } $this->manager = $manager; $this->server = $server; }
/** * @inheritdoc * * @param array $config * * @return PromiseInterface * * @throws InvalidArgumentException */ public function connect(array $config) { $config = $this->validate($config); $this->remit($config); $this->manager = new ProcessManager(); if (isset($config["log"])) { $this->manager->setLogPath($config["log"]); } $this->manager->addTask(new DoormanConnectorTask($config)); $this->manager->tick(); }
/** * @inheritdoc * * @return bool */ public function tick() { if (!empty($this->queuing)) { $this->manager->addTask(array_shift($this->queuing)); } if ($this->manager->tick()) { return true; } if (empty($this->waiting)) { return false; } $this->queuing = array_shift($this->waiting); return true; }