composer require wilkques/task-pool
use Wilkques\TaskPool\Contracts\TaskContract;
use Wilkques\TaskPool\Exceptions\ForkRunTimeException;
class TaskOne implements TaskContract
{
public function handle()
{
// ... do something
return $result;
}
public function resolved($result, $index)
{
// ... do something
return $result;
}
public function rejected(ForkRunTimeException $forkRunTimeException)
{
// ... do something
return $forkRunTimeException;
}
}
class TaskTwo implements TaskContract
{
public function handle()
{
// ... do something
return $result;
}
public function resolved($result, $index)
{
// ... do something
return $result;
}
public function rejected(ForkRunTimeException $forkRunTimeException)
{
// ... do something
return $forkRunTimeException;
}
}
class TaskThree implements TaskContract
{
public function handle()
{
// ... do something
return $result;
}
public function resolved($result, $index)
{
// ... do something
return $result;
}
public function rejected(ForkRunTimeException $forkRunTimeException)
{
// ... do something
return $forkRunTimeException;
}
}
$taskOne = new TaskOne;
$taskTwo = new TaskTwo;
$taskThree = new TaskThree;
$taskPool = new TaskPool;
$taskPool->task($taskOne)->task($taskTwo)->task($taskThree);
// or
$taskPool->tasks(
array(
$taskOne,
$taskTwo,
$taskThree,
)
);
// run handle
$taskPool->handle();
// if has return
$taskPool->results();
memory
memory size default 1024timeout
set timeout microseconds default 100000