\Colibri\ThreadingProcess

Класс для работы с процессами Внимание: для корректной работы требуется наличие 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(); // закрываем лог воркера

Summary

Methods
Properties
Constants
__construct()
Create()
__get()
Run()
IsRunning()
Stop()
IsProcessRunning()
StopProcess()
No public properties found
Handler
No protected methods found
No protected properties found
N/A
No private methods found
$_pid
$_worker
N/A

Constants

Handler

Handler = '/usr/bin/php'

Обработчик запросов, в большинстве случаев php_cli Если у вас на сервере php_cli лежит в другом месте, необходимо изменить эту переменную

Properties

$_pid

$_pid : integer

PID процесса Worker-а

Type

integer

$_worker

$_worker : \Colibri\Threading\Worker

Worker который нужно запустить

Type

\Colibri\Threading\Worker

Methods

__construct()

__construct(\Colibri\Threading\Worker  $worker) 

Выполняет Worker по имени класса в отдельном потоке

Parameters

\Colibri\Threading\Worker $worker

__get()

__get(string  $prop) : mixed

Getter

Parameters

string $prop

свойство

Returns

mixed

Run()

Run(\Colibri\Threading\stdClass  $params) : void

Запускает Worker

Parameters

\Colibri\Threading\stdClass $params

параметры для передачи в процесс

IsRunning()

IsRunning() : boolean

Проверяет запущен ли Worker

Returns

boolean —

true если запущен, false если нет

Stop()

Stop() : boolean

Останавливает Worker

Returns

boolean —

true если удалось остановить, false если нет

IsProcessRunning()

IsProcessRunning(integer  $pid) : boolean

Проверяет живой ли процесс по PID—у

Parameters

integer $pid

PID процесса

Returns

boolean

StopProcess()

StopProcess(integer  $pid) : boolean

Убивает процесс и возвращает true если получилось и false если нет

Parameters

integer $pid

PID процесса

Returns

boolean