Fazer resquisições multitask assíncronas com PHP de forma fácil e eficiente.
- PHP >= 5.6
composer require raphaeu/async
// Import
use async\Task;
use async\Async;
// Inicialize async class
$async = new Async();
// Create tasks
$task1 = new Task("php /tmp/randTimer.php");
$task2 = new Task("php /tmp/randTimer.php");
$task3 = new Task("php /tmp/randTimer.php");
// Vinculando testes
$async->addTask($task1);
$async->addTask($task2);
$async->addTask($task3);
// Rodando tarefas assíncronas
while ($totalOk = $async->hasDo())
{
echo "Rodando: ".((count($async->getTasks()) - $totalOk) + 1)."/". count($async->getTasks()) ."\r";
usleep(250);
}
// Pegando resultados das tarefas
foreach ($async->getTasks() as $task)
{
echo PHP_EOL. $task->getResult();
}
<?php
sleep(rand(1, 5));
echo time();
Para conseguir resgatar o resultado da tarefa assíncrona precisa informar uma path temporária.
$async = new Async('/path-temp/');
A lista de mudanças voce pode encontrar na página GitHub Releases.
Por favor, reporte os bugs para GitHub Issue Tracker.
Este projeto está licenciado sob a MIT License.