raphaeu/async

Php assyncrono

Maintainers

Details

github.com/raphaeu/async

Source

Issues

Installs: 36

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:project

3.0.0.5 2020-10-18 18:58 UTC

This package is auto-updated.

Last update: 2024-05-19 02:38:24 UTC


README

Latest Stable Version Total Downloads Author License

Fazer resquisições multitask assíncronas com PHP de forma fácil e eficiente.

Requisitos

Instalando com composer

composer require raphaeu/async

Usando

// 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();
}

Arquivo do teste assíncrono randTimer.php

<?php
  sleep(rand(1, 5));
  echo time();

Configurando

Para conseguir resgatar o resultado da tarefa assíncrona precisa informar uma path temporária.

$async = new Async('/path-temp/');

Changelog

A lista de mudanças voce pode encontrar na página GitHub Releases.

Soluções de problemas

Por favor, reporte os bugs para GitHub Issue Tracker.

Copyright

Este projeto está licenciado sob a MIT License.