����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 18.219.224.246 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 : /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) ); } } }