PHP code example of brandembassy / queue-management
1. Go to this page and download the library: Download brandembassy/queue-management 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/ */
brandembassy / queue-management example snippets
declare(strict_types = 1);
use BE\QueueManagement\Jobs\SimpleJob;
class ExampleJob extends SimpleJob
{
public const JOB_NAME = 'exampleJob';
public const PARAMETER_FOO = 'foo';
public function getFoo(): string
{
return $this->getParameter(self::PARAMETER_FOO);
}
}
declare(strict_types = 1);
use BE\QueueManagement\Jobs\Execution\JobProcessorInterface;
use BE\QueueManagement\Jobs\JobInterface;
use YourApp\Jobs\ExampleJob;
class ExampleJobProcessor implements JobProcessorInterface
{
public function process(JobInterface $job): void
{
assert($job instanceof ExampleJob);
echo $job->getFoo();
}
}
declare(strict_types = 1);
use BE\QueueManagement\Queue\QueueManagerInterface;
use YourApp\Jobs\ExampleJob;
use BE\QueueManagement\Jobs\JobInterface;
use BE\QueueManagement\Jobs\JobDefinitions\JobDefinitionsContainer;
class JobPusher
{
/**
* @var QueueManagerInterface
*/
protected $queueManager;
/**
* @var JobDefinitionsContainer
*/
private $jobDefinitionsContainer;
public function __construct(QueueManagerInterface $queueManager, JobDefinitionsContainer $jobDefinitionsContainer) {
$this->queueManager = $queueManager;
$this->jobDefinitionsContainer = $jobDefinitionsContainer;
}
protected function push(string $jobUuid): void
{
$jobDefinition = $this->jobDefinitionsContainer->get(ExampleJob::JOB_NAME);
$exampleJob = new ExampleJob(
$jobUuid,
new DateTimeImmutable(),
JobInterface::INIT_ATTEMPTS,
$jobDefinition,
new ArrayCollection([ExampleJob::PARAMETER_FOO => 'bar'])
);
$this->queueManager->push($exampleJob);
}
}
declare(strict_types = 1);
namespace BE\AdapterSdk\Console\Commands\Queue;
use BE\QueueManagement\Queue\WorkerInterface;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Command\Command;
class WorkerStartCommand extends Command
{
/**
* @var WorkerInterface
*/
private $worker;
public function __construct(WorkerInterface $worker)
{
parent::__construct();
$this->worker = $worker;
}
protected function configure(): void
{
$this->setName('queue:worker:start');
$this->setDescription('Start queue worker');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$queueName = $input->getArgument(self::QUEUE_NAME);
assert(is_string($queueName));
$this->sqsWorker->start($queueName);
$output->writeln('Worker started');
return 0;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.