����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/root/home/builderbox/./././public_html/vendor/laravel/horizon/src/ |
Upload File : |
<?php
namespace Laravel\Horizon;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Queue\RedisQueue as BaseQueue;
use Illuminate\Support\Str;
use Laravel\Horizon\Events\JobDeleted;
use Laravel\Horizon\Events\JobPushed;
use Laravel\Horizon\Events\JobReleased;
use Laravel\Horizon\Events\JobReserved;
use Laravel\Horizon\Events\JobsMigrated;
class RedisQueue extends BaseQueue
{
/**
* The job that last pushed to queue via the "push" method.
*
* @var object|string
*/
protected $lastPushed;
/**
* Get the number of queue jobs that are ready to process.
*
* @param string|null $queue
* @return int
*/
public function readyNow($queue = null)
{
return $this->getConnection()->llen($this->getQueue($queue));
}
/**
* Push a new job onto the queue.
*
* @param object|string $job
* @param mixed $data
* @param string|null $queue
* @return mixed
*/
public function push($job, $data = '', $queue = null)
{
return $this->enqueueUsing(
$job,
$this->createPayload($job, $this->getQueue($queue), $data),
$queue,
null,
function ($payload, $queue) use ($job) {
$this->lastPushed = $job;
return $this->pushRaw($payload, $queue);
}
);
}
/**
* Push a raw payload onto the queue.
*
* @param string $payload
* @param string $queue
* @param array $options
* @return mixed
*/
public function pushRaw($payload, $queue = null, array $options = [])
{
$payload = (new JobPayload($payload))->prepare($this->lastPushed);
parent::pushRaw($payload->value, $queue, $options);
$this->event($this->getQueue($queue), new JobPushed($payload->value));
return $payload->id();
}
/**
* Create a payload string from the given job and data.
*
* @param string $job
* @param string $queue
* @param mixed $data
* @return array
*/
protected function createPayloadArray($job, $queue, $data = '')
{
$payload = parent::createPayloadArray($job, $queue, $data);
$payload['id'] = $payload['uuid'];
return $payload;
}
/**
* Push a new job onto the queue after a delay.
*
* @param \DateTimeInterface|\DateInterval|int $delay
* @param string $job
* @param mixed $data
* @param string $queue
* @return mixed
*/
public function later($delay, $job, $data = '', $queue = null)
{
$payload = (new JobPayload($this->createPayload($job, $queue, $data)))->prepare($job)->value;
if (method_exists($this, 'enqueueUsing')) {
return $this->enqueueUsing(
$job,
$payload,
$queue,
$delay,
function ($payload, $queue, $delay) {
return tap(parent::laterRaw($delay, $payload, $queue), function () use ($payload, $queue) {
$this->event($this->getQueue($queue), new JobPushed($payload));
});
}
);
}
return tap(parent::laterRaw($delay, $payload, $queue), function () use ($payload, $queue) {
$this->event($this->getQueue($queue), new JobPushed($payload));
});
}
/**
* Pop the next job off of the queue.
*
* @param string $queue
* @return \Illuminate\Contracts\Queue\Job|null
*/
public function pop($queue = null)
{
return tap(parent::pop($queue), function ($result) use ($queue) {
if ($result) {
$this->event($this->getQueue($queue), new JobReserved($result->getReservedJob()));
}
});
}
/**
* Migrate the delayed jobs that are ready to the regular queue.
*
* @param string $from
* @param string $to
* @return void
*/
public function migrateExpiredJobs($from, $to)
{
return tap(parent::migrateExpiredJobs($from, $to), function ($jobs) use ($to) {
$this->event($to, new JobsMigrated($jobs));
});
}
/**
* Delete a reserved job from the queue.
*
* @param string $queue
* @param \Illuminate\Queue\Jobs\RedisJob $job
* @return void
*/
public function deleteReserved($queue, $job)
{
parent::deleteReserved($queue, $job);
$this->event($this->getQueue($queue), new JobDeleted($job, $job->getReservedJob()));
}
/**
* Delete a reserved job from the reserved queue and release it.
*
* @param string $queue
* @param \Illuminate\Queue\Jobs\RedisJob $job
* @param int $delay
* @return void
*/
public function deleteAndRelease($queue, $job, $delay)
{
parent::deleteAndRelease($queue, $job, $delay);
$this->event($this->getQueue($queue), new JobReleased($job->getReservedJob()));
}
/**
* Fire the given event if a dispatcher is bound.
*
* @param string $queue
* @param mixed $event
* @return void
*/
protected function event($queue, $event)
{
if ($this->container && $this->container->bound(Dispatcher::class)) {
$queue = Str::replaceFirst('queues:', '', $queue);
$this->container->make(Dispatcher::class)->dispatch(
$event->connection($this->getConnectionName())->queue($queue)
);
}
}
}