Handler
Handler = '/usr/bin/php'
Обработчик запросов, в большинстве случаев php_cli Если у вас на сервере php_cli лежит в другом месте, необходимо изменить эту переменную
Класс для работы с процессами Внимание: для корректной работы требуется наличие php_cli, memcached и прав на запуск скриптов через shell_exec и exec Внимание: перед использованием проверьте наличие обарботчика php_cli в папке указанной в константе Handler, если у вас обработчик лежит в другом месте, то замените эту переменную
Необходимо учитывать, что будет присутствовать 2 объекта класса Worker, первый в источнике потока, второй в самом потоке
пример работы:
class TestWorker extends Worker { // класс обертка для воркера public function Run() { // описываем функцию, конкретные действия for($i=0;$i<10;$i++) $this->_log->WriteLine('Test Worker run ok...', $i, rout($this->_params)); } }
$worker = new TestWorker(); $process = new Process($worker); // или Process::Create($worker); $process->Run((object)['blablabla' => 'test']); // запускаем воркер, передаем параметры потоку
$workerOutput = array(); $worker->log->Open(); // открываем лог воркера while($process->IsRunning()) { // проверяем работает ли все еще воркер $workerOutput = array_merge($workerOutput, $worker->log->Read()); // считываем последние сообщения sleep(1); } $worker->log->Close(); // закрываем лог воркера
$_worker : \Colibri\Threading\Worker
Worker который нужно запустить
__construct(\Colibri\Threading\Worker $worker)
Выполняет Worker по имени класса в отдельном потоке
| \Colibri\Threading\Worker | $worker |
Create(\Colibri\Threading\Worker $worker) : \Colibri\Threading\Process
Создает Process
| \Colibri\Threading\Worker | $worker |