for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Workana\AsyncJobs\Dispatcher;
use DateTime;
use Bernard\Envelope;
use Workana\AsyncJobs\Job;
use Workana\AsyncJobs\JobManager;
use Workana\AsyncJobs\JobDispatcher;
/**
* Job dispatcher on async mode
*
* @author Carlos Frutos <[email protected]>
*/
class AsyncJobDispatcher implements JobDispatcher
{
* @var JobManager
protected $jm;
* @var QueueDecider
protected $queueDecider;
* Creates a new instance
* @param JobManager $jm
public function __construct(JobManager $jm)
$this->jm = $jm;
$this->queueDecider = new QueueDecider(
$jm->getQueueFactory(),
$jm->getConfiguration()->getDefaultQueueName(),
$jm->getConfiguration()->getDispatchingRules()
);
}
* {@inheritDoc}
public function dispatch(Job $job)
$queue = $this->queueDecider->decide($job);
$envelope = new Envelope($job, $job->getDelay());
$queue->enqueue($envelope);