Download the PHP package andrey-tech/parallel-executor-php without Composer
On this page you can find all versions of the php package andrey-tech/parallel-executor-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andrey-tech/parallel-executor-php
More information about andrey-tech/parallel-executor-php
Files in andrey-tech/parallel-executor-php
Package parallel-executor-php
Short Description Класс, выполняющий задачи в нескольких отдельных параллельных потоках PHP при помощи расширения parallel
License MIT
Homepage https://github.com/andrey-tech/parallel-executor-php
Informations about the package parallel-executor-php
Parallel Executor
Простой класс на PHP 7.2+, позволяющий выполнять задачи в нескольких параллельных потоках исполнения при помощи PHP-расширения parallel.
Docker-образ для быстрой проверки примера находится в репозитории на Docker Hub.
Содержание
- Требования
- Установка
- Класс
\App\ParallelExecutor
- Методы класса
- Дополнительные параметры
- Примеры
- Автор
- Лицензия
Требования
- PHP >=7.2 Thread Safe.
- PHP-расширение parallel.
- Произвольный автозагрузчик классов, реализующий стандарт PSR-4.
Установка
Установка через composer:
или добавить
в секцию require файла composer.json.
Класс \App\ParallelExecutor
Методы класса
__construct(int $threads = 5, string $channelName = __CLASS__, int $channelСapacity = Channel::Infinite)
Конструктор класса.$threads
- количество создаваемых сред исполнения, как отдельных потоков PHP;$channelName
- имя создаваемого именованного канала;$channelСapacity
- емкость создаваемого именованного канала, МиБ (0 - небуферизированный канал)
execute(\Closure $closure, array $argv = []) :void
Отправляет на исполнение переданную задачу.$closure
- функция-замыкание, исполняющяя задачу;$argv
- аргументы функции.
Дополнительные параметры
Дополнительные параметры устанавливаются через публичные статические свойства класса \App\ParallelExecutor
:
Свойство | По умолчанию | Описание |
---|---|---|
$autoloader |
'' | Устанавливает файл автозагрузчика классов, подключаемый в каждой среде исполнения |
Примеры
Выполнение 10 задач в 3 параллельных потоках PHP с буферизированным каналом:
Результат:
Выполнение 10 задач в 3 параллельных потоках PHP с НЕ буферизированным каналом:
Результат:
Автор
© 2020 andrey-tech
Лицензия
Данный код распространяется на условиях лицензии MIT.