bettergist / concurrency-helper
一种超级简单的方式,用于并行运行多个PHP实例。
v1.0.0
2021-01-30 16:29 UTC
Requires
- php: >=7.2.5
- ext-pcntl: *
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 11:30:35 UTC
README
ConcurrencyHelper 是一个库,可以轻松高效地通过多个并行PHP实例运行任何可调用项。
它的目标是大大简化大规模并行化操作。
值得注意的用例包括 Bettergist Collector 项目,该项目使用 ConcurrencyHelper 大规模并行化下载每个 www.Packagist.org 包,使用 50-200 个PHP进程。
此库需要 ext-pcntl 扩展。
https://github.com/bettergistco/ConcurrencyHelper
用法
```php
$myParallelizedFunction = function (int $childNumber, array $packages, $optionalExtraParameter) {
echo "Thread $childNumber: " . implode(', ', $packages) . " of $optionalExtraParameter\n";
sleep($childNumber * 1);
echo "Finished Thread $childNumber.\n";
};
$states = [
'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado',
'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho',
];
$runner = new BettergistCollective\ConcurrencyHelper\ConcurrencyHelper();
$runner->concurrentlyRun($states, 6, $myParallelizedFunction, [count($states)]);
```
安装
通过 Composer
$ composer require phpexperts/conciseuuid
此库需要 ext-pcntl 扩展。
变更日志
有关最近更改的更多信息,请参阅 变更日志。
测试
$ phpunit
贡献
如果您想进行改进,请查看 contributing.md。
致谢
- Theodore R. Smith
许可证
MIT 许可证。有关更多信息,请参阅 许可证文件。