PHP code example of molecular / queueprocessmanager
1. Go to this page and download the library: Download molecular/queueprocessmanager library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
molecular / queueprocessmanager example snippets
//É criado o manipulador da fila, nesse caso por sql
$handle = new \PhpQPM\QueueHandle\Sql\SqlQueueHandle();
//Informações para conexões do banco
$handle->connect('mysql:host=localhost;dbname=QueueManager', 'teste', 'teste');
//Cria um Manager para servir de interface para a fila, usando o manipulador sql criado anteriormente
$manager = new \PhpQPM\Manager($handle);
$foo = 10;
//É colocado uma processo na fila para ser executado, nesse caso um closure
//O scope do closure é armazenado na fila junto ao closure para ser executado mais tarde
//o método putProcessOnQueue retorna um observer da fila
$process = $manager->putProcessOnQueue(function() use($foo){
return 10 + $foo;
});
//aguarda o processo ser finalizado
//O método update do observer atualiza os dados do objeto com base nos dados da fila
//Após o consumidor da consumir o processo, o método isFinish retornará true
while(!$process->update()->isFinish()){sleep(1);};
//O método é executado e pode ser obtido o retorno através do método getReturn
$bar = $process->getReturn();// 20
//É criado a conexão e o Manager da mesma forma que no cliente
$handle = new \PhpQPM\QueueHandle\Sql\SqlQueueHandle();
$handle->connect('mysql:host=localhost;dbname=QueueManager', 'teste', 'teste');
$manager = new \PhpQPM\Manager($handle);
//Através do manager pode ser gerado o consumidor da fila
$worker = $manager->createWorker();
//O método work cria um loop onde é verificado se existe itens pendentes na fila
//Caso exista itens pendentes na fila, os mesmo são processados
$worker->work();
//A Classe deve estender ProcessQueueable para poder ser executada na fila
class SimpleProcess extends \PhpQPM\Process\ProcessQueueable
{
//A classe possui o método abstrato run que deve ser implementado com a lógica do processo
//A classe também pode conter propriedades que as mesmas são serializados para a fila
public function run()
{
return 10;
}
}
$handle = new \PhpQPM\QueueHandle\Sql\SqlQueueHandle();
$handle->connect('mysql:host=localhost;dbname=QueueManager', 'teste', 'teste');
$manager = new \PhpQPM\Manager($handle);
//O método putProcessOnQueue do Manager aceita um objeto do tipo ProcessQueueable
$process = $manager->putProcessOnQueue(new SimpleProcess());
while(!$process->update()->isFinish()){sleep(1);};
$bar = $process->getReturn();// 10
/* Mesmo Código do exemplo anterior*/
//...
$process = $manager->putProcessOnQueue(new SimpleProcess());
//Verifica se o processo já foi reservado pela fila
$process->isReserved();
//Verifica se o processo já foi reservado pela fila, porém o seu processamento ainda não foi concluido
$process->isRunning();
//Verifica se o processo já foi concluído
$process->isFinish();
//Verifica se o processo ainda não foi reservado pela fila
$process->isWait();
//Obtem o retorno do processo
$process->getReturn();
//Verifica se ocorreu algum erro no processamento
$process->hasError();
//Obtem o erro no processamento
$process->getError();
//Atualiza o observer com os dados mais atuais da fila
$process->update();
//...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.