1. Go to this page and download the library: Download zwilias/qman 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/ */
use QMan\QMan;
use QMan\ClosureCommand;
$qMan = QMan::create(['localhost:11300']);
$qMan->queue(ClosureCommand::create(function () {
echo 'Hello world!';
}));
use Beanie\Beanie;
use QMan\WorkerBuilder;
$beanie = Beanie::pool(['localhost:11300']);
$worker = (new WorkerBuilder())
->build($beanie);
$worker->run();
use QMan\AbstractCommand;
class CustomCommand extends AbstractCommand
{
public function getType()
{
return 'my.custom.command';
}
public function execute()
{
echo $this->getData() * 5;
return true;
}
}
use Beanie\Beanie;
use QMan\WorkerBuilder;
use QMan\GenericCommandSerializer;
$serializer = new GenericCommandSerializer();
$serializer->registerCommandType('my.custom.command', CustomCommand::class);
$beanie = Beanie::pool(['localhost:11300']);
$worker = (new WorkerBuilder())
->withCommandSerializer($serializer)
->build($beanie);
$worker->run();
final class Commands
{
const TYPE_CUSTOM_COMMAND = 'my.custom.command';
public static function $map = [
self::TYPE_CUSTOM_COMMAND => CustomCommand::class
];
}
use QMan\QManConfig;
use QMan\QManBuilder;
use Beanie\Beanie;
$config = new QManConfig();
$config->setTerminationSignals([SIGTERM, SIGQUIT]);
$beanie = Beanie::pool($servers);
$worker = (new WorkerBuilder())
->withQManConfig($config)
->build($beanie);
use Psr\Log\LoggerAwareTrait;
use QMan\JobFailureStrategyInterface;
use QMan\Job;
use QMan\ConfigAwareTrait;
class MyCustomJobFailureStrategy implements JobFailureStrategyInterface
{
use LoggerAwareTrait, ConfigAwareTrait;
public function handleFailedJob(Job $job)
{
// Do stuff, like deleting the job after 10 total tries
$stats = $job->stats();
if ($stats['reserves'] > 10) {
$this->logger->alert('Deleting job after failing to successfully execute over 10 times', ['job' => $job]);
$job->delete();
}
}
}
use QMan\WorkerBuilder;
$worker = (new WorkerBuilder)->withJobFailureStrategy(new MyCustomJobFailureStrategy())->build([...]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.