Primo Committ
This commit is contained in:
160
vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php
vendored
Executable file
160
vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php
vendored
Executable file
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Queue;
|
||||
|
||||
use Illuminate\Contracts\Queue\Job;
|
||||
use Illuminate\Contracts\Queue\Queue as QueueContract;
|
||||
use Illuminate\Queue\Events\JobExceptionOccurred;
|
||||
use Illuminate\Queue\Events\JobProcessed;
|
||||
use Illuminate\Queue\Events\JobProcessing;
|
||||
use Illuminate\Queue\Jobs\SyncJob;
|
||||
use Throwable;
|
||||
|
||||
class SyncQueue extends Queue implements QueueContract
|
||||
{
|
||||
/**
|
||||
* Get the size of the queue.
|
||||
*
|
||||
* @param string|null $queue
|
||||
* @return int
|
||||
*/
|
||||
public function size($queue = null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Push a new job onto the queue.
|
||||
*
|
||||
* @param string $job
|
||||
* @param mixed $data
|
||||
* @param string|null $queue
|
||||
* @return mixed
|
||||
*
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function push($job, $data = '', $queue = null)
|
||||
{
|
||||
$queueJob = $this->resolveJob($this->createPayload($job, $queue, $data), $queue);
|
||||
|
||||
try {
|
||||
$this->raiseBeforeJobEvent($queueJob);
|
||||
|
||||
$queueJob->fire();
|
||||
|
||||
$this->raiseAfterJobEvent($queueJob);
|
||||
} catch (Throwable $e) {
|
||||
$this->handleException($queueJob, $e);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve a Sync job instance.
|
||||
*
|
||||
* @param string $payload
|
||||
* @param string $queue
|
||||
* @return \Illuminate\Queue\Jobs\SyncJob
|
||||
*/
|
||||
protected function resolveJob($payload, $queue)
|
||||
{
|
||||
return new SyncJob($this->container, $payload, $this->connectionName, $queue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Raise the before queue job event.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Queue\Job $job
|
||||
* @return void
|
||||
*/
|
||||
protected function raiseBeforeJobEvent(Job $job)
|
||||
{
|
||||
if ($this->container->bound('events')) {
|
||||
$this->container['events']->dispatch(new JobProcessing($this->connectionName, $job));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Raise the after queue job event.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Queue\Job $job
|
||||
* @return void
|
||||
*/
|
||||
protected function raiseAfterJobEvent(Job $job)
|
||||
{
|
||||
if ($this->container->bound('events')) {
|
||||
$this->container['events']->dispatch(new JobProcessed($this->connectionName, $job));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Raise the exception occurred queue job event.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Queue\Job $job
|
||||
* @param \Throwable $e
|
||||
* @return void
|
||||
*/
|
||||
protected function raiseExceptionOccurredJobEvent(Job $job, Throwable $e)
|
||||
{
|
||||
if ($this->container->bound('events')) {
|
||||
$this->container['events']->dispatch(new JobExceptionOccurred($this->connectionName, $job, $e));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an exception that occurred while processing a job.
|
||||
*
|
||||
* @param \Illuminate\Queue\Jobs\Job $queueJob
|
||||
* @param \Throwable $e
|
||||
* @return void
|
||||
*
|
||||
* @throws \Throwable
|
||||
*/
|
||||
protected function handleException(Job $queueJob, Throwable $e)
|
||||
{
|
||||
$this->raiseExceptionOccurredJobEvent($queueJob, $e);
|
||||
|
||||
$queueJob->fail($e);
|
||||
|
||||
throw $e;
|
||||
}
|
||||
|
||||
/**
|
||||
* Push a raw payload onto the queue.
|
||||
*
|
||||
* @param string $payload
|
||||
* @param string|null $queue
|
||||
* @param array $options
|
||||
* @return mixed
|
||||
*/
|
||||
public function pushRaw($payload, $queue = null, array $options = [])
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Push a new job onto the queue after a delay.
|
||||
*
|
||||
* @param \DateTimeInterface|\DateInterval|int $delay
|
||||
* @param string $job
|
||||
* @param mixed $data
|
||||
* @param string|null $queue
|
||||
* @return mixed
|
||||
*/
|
||||
public function later($delay, $job, $data = '', $queue = null)
|
||||
{
|
||||
return $this->push($job, $data, $queue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pop the next job off of the queue.
|
||||
*
|
||||
* @param string|null $queue
|
||||
* @return \Illuminate\Contracts\Queue\Job|null
|
||||
*/
|
||||
public function pop($queue = null)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user