zver/async

该包的最新版本(1.0.6)没有可用的许可证信息。

异步任务执行器

1.0.6 2019-07-16 21:51 UTC

This package is auto-updated.

Last update: 2024-09-17 09:46:29 UTC


README

Build Status

async

//create runner
$runner = new AsyncRunner();
for ($i = 0; $i < $count; $i++) {
    //add some task class
    $runner->addTask(new AsyncRunnerTestTask($i));
}

//wait for results
$results = $runner->runAndWait();

//or run in manual mode
$runner->run();
while (!$runner->isCompleted()) {
    $runner->iterate();
}
$results = $runner->getResults();

构造函数

public function __construct(int $taskRunPauseSeconds = 0, int $maxTaskAtSameTime = 20, int $killTaskAfterSeconds = 3600)
  • taskRunPauseSeconds = 0, 在该超时后运行下一个任务
  • maxTaskAtSameTime = 20, 同时最大任务数
  • killTaskAfterSeconds = 3600, 在该超时后杀死任务

任务类示例

<?php
class AsyncRunnerTestTask extends AsyncTask
{
    public function configure()
    {
        //prepare for something
    }

    public function run()
    {
        //do something
    }
}

安装

composer require zver/async