Файл: gapps/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php
Строк: 70
<?php
namespace IlluminateQueue;
use IlluminateContractsQueueJob;
use IlluminateContractsBusDispatcher;
class CallQueuedHandler
{
/**
* The bus dispatcher implementation.
*
* @var IlluminateContractsBusDispatcher
*/
protected $dispatcher;
/**
* Create a new handler instance.
*
* @param IlluminateContractsBusDispatcher $dispatcher
* @return void
*/
public function __construct(Dispatcher $dispatcher)
{
$this->dispatcher = $dispatcher;
}
/**
* Handle the queued job.
*
* @param IlluminateContractsQueueJob $job
* @param array $data
* @return void
*/
public function call(Job $job, array $data)
{
$command = $this->setJobInstanceIfNecessary(
$job, unserialize($data['command'])
);
$this->dispatcher->dispatchNow($command);
if (! $job->isDeletedOrReleased()) {
$job->delete();
}
}
/**
* Set the job instance of the given class if necessary.
*
* @param IlluminateContractsQueueJob $job
* @param mixed $instance
* @return mixed
*/
protected function setJobInstanceIfNecessary(Job $job, $instance)
{
if (in_array('IlluminateQueueInteractsWithQueue', class_uses_recursive(get_class($instance)))) {
$instance->setJob($job);
}
return $instance;
}
/**
* Call the failed method on the job instance.
*
* @param array $data
* @return void
*/
public function failed(array $data)
{
$command = unserialize($data['command']);
if (method_exists($command, 'failed')) {
$command->failed();
}
}
}