protected function runWorker(callable $handler)
    {
        $this->_workerPid = getmypid();
        /** @var LoopInterface $loop */
        $loop = Yii::createObject($this->loopConfig, [$this]);

        $event = new WorkerEvent(['loop' => $loop]);
        $this->trigger(self::EVENT_WORKER_START, $event);
        if ($event->exitCode !== null) {
            return $event->exitCode;
        }

        $exitCode = null;
        try {
            call_user_func($handler, function () use ($loop, $event) {
                $this->trigger(self::EVENT_WORKER_LOOP, $event);
                return $event->exitCode === null && $loop->canContinue();
            });
        } finally {
            $this->trigger(self::EVENT_WORKER_STOP, $event);
            $this->_workerPid = null;
        }

        return $event->exitCode;
    }
protected function runWorker(callable $handler)
    {
        $this->_workerPid = getmypid();
        /** @var LoopInterface $loop */
        $loop = Yii::createObject($this->loopConfig, [$this]);

        $event = new WorkerEvent(['loop' => $loop]);
        $this->trigger(self::EVENT_WORKER_START, $event);
        if ($event->exitCode !== null) {
            return $event->exitCode;
        }

        $exitCode = null;
        try {
            call_user_func($handler, function () use ($loop, $event) {
                $this->trigger(self::EVENT_WORKER_LOOP, $event);
                return $event->exitCode === null && $loop->canContinue();
            });
        } finally {
            $this->trigger(self::EVENT_WORKER_STOP, $event);
            $this->_workerPid = null;
        }

        return $event->exitCode;
    }
protected function runWorker ( callable $ handler ) { $ this -> _workerPid = getmypid ( ) ; /** @var LoopInterface $loop */ $ loop = Yii :: createObject ( $ this -> loopConfig , [ $ this ] ) ; $ event = new WorkerEvent ( [ 'loop' => $ loop ] ) ; $ this -> trigger ( self :: EVENT_WORKER_START , $ event ) ; if ( $ event -> exitCode !== null ) { return $ event -> exitCode ; } $ exitCode = null ; try { call_user_func ( $ handler , function ( ) use ( $ loop , $ event ) { $ this -> trigger ( self :: EVENT_WORKER_LOOP , $ event ) ; return $ event -> exitCode === null && $ loop -> canContinue ( ) ; } ) ; } finally { $ this -> trigger ( self :: EVENT_WORKER_STOP , $ event ) ; $ this -> _workerPid = null ; } return $ event -> exitCode ; }
Runs worker.

@param callable $handler
@return null|int exit code
@since 2.0.2
Runs worker .