PHPPM\ProcessSlave::run PHP Method

run() public method

Connects to ProcessManager, master process.
public run ( )
    public function run()
    {
        $this->loop = \React\EventLoop\Factory::create();
        $this->errorLogger = BufferingLogger::create();
        ErrorHandler::register(new ErrorHandler($this->errorLogger));
        $client = stream_socket_client($this->config['controllerHost']);
        $this->controller = new \React\Socket\Connection($client, $this->loop);
        $pcntl = new \MKraemer\ReactPCNTL\PCNTL($this->loop);
        $pcntl->on(SIGTERM, [$this, 'shutdown']);
        $pcntl->on(SIGINT, [$this, 'shutdown']);
        register_shutdown_function([$this, 'shutdown']);
        $this->bindProcessMessage($this->controller);
        $this->controller->on('close', \Closure::bind(function () {
            $this->shutdown();
        }, $this));
        $this->server = new React\Server($this->loop);
        //our version for now, because of unix socket support
        $http = new HttpServer($this->server);
        $http->on('request', array($this, 'onRequest'));
        //port is only used for tcp connection. If unix socket, 'host' contains the socket path
        $port = $this->config['port'];
        $host = $this->config['host'];
        while (true) {
            try {
                $this->server->listen($port, $host);
                break;
            } catch (\React\Socket\ConnectionException $e) {
                usleep(500);
            }
        }
        $this->sendMessage($this->controller, 'register', ['pid' => getmypid(), 'port' => $port]);
        $this->loop->run();
    }