bettergist/concurrency-helper

一种超级简单的方式,用于并行运行多个PHP实例。

v1.0.0 2021-01-30 16:29 UTC

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 许可证。有关更多信息,请参阅 许可证文件