ProcessPool
in package
FinalYes
並列数を制御しつつ、複数の ProcessTask を実行するプール。 停止要求時は新規タスクを起動せず、実行中プロセスを強制終了して安全に終了する。
Table of Contents
Properties
- $errorHandler : ErrorHandlerInterface
- $maxParallel : int
- $queue : SplQueue<string|int, ProcessTask>
- $responseHandler : ResponseHandlerInterface
- $runner : ProcOpenRunner
- $running : array<int, RunningProcess>
- $stopRequested : bool
- $taskStartHandler : TaskStartHandlerInterface
Methods
- __construct() : mixed
- addTask() : void
- getQueuedTaskCount() : int
- キューに残っている未実行タスクの数。
- isStopRequested() : bool
- 停止が要求されているかどうか。
- requestStop() : void
- 停止を要求する。 呼び出し後、新規タスクは起動されず、実行中プロセスは強制終了され、 run() は残り結果を返して終了する。
- run() : array<int, mixed>
- 全タスクを実行し、ハンドラの戻り値を配列で返す。 requestStop() により停止した場合は、強制終了されたプロセスは errorHandler で処理される。
Properties
$errorHandler
private
ErrorHandlerInterface
$errorHandler
$maxParallel
private
int
$maxParallel
$queue
private
SplQueue<string|int, ProcessTask>
$queue
$responseHandler
private
ResponseHandlerInterface
$responseHandler
$runner
private
ProcOpenRunner
$runner
$running
private
array<int, RunningProcess>
$running
= []
$stopRequested
private
bool
$stopRequested
= false
$taskStartHandler
private
TaskStartHandlerInterface
$taskStartHandler
Methods
__construct()
public
__construct(int $maxParallel, ProcOpenRunner $runner, ResponseHandlerInterface $responseHandler, ErrorHandlerInterface $errorHandler, TaskStartHandlerInterface $taskStartHandler) : mixed
Parameters
- $maxParallel : int
- $runner : ProcOpenRunner
- $responseHandler : ResponseHandlerInterface
- $errorHandler : ErrorHandlerInterface
- $taskStartHandler : TaskStartHandlerInterface
addTask()
public
addTask(ProcessTask $task) : void
Parameters
- $task : ProcessTask
getQueuedTaskCount()
キューに残っている未実行タスクの数。
public
getQueuedTaskCount() : int
Return values
intisStopRequested()
停止が要求されているかどうか。
public
isStopRequested() : bool
Return values
boolrequestStop()
停止を要求する。 呼び出し後、新規タスクは起動されず、実行中プロセスは強制終了され、 run() は残り結果を返して終了する。
public
requestStop() : void
run()
全タスクを実行し、ハンドラの戻り値を配列で返す。 requestStop() により停止した場合は、強制終了されたプロセスは errorHandler で処理される。
public
run() : array<int, mixed>