Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/vapecompany/demo.vapecompany.com.bd/vendor/laravel/framework/src/Illuminate/Queue/ |
Upload File : |
<?php namespace Illuminate\Queue; use Closure; use Illuminate\Bus\Batchable; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use ReflectionFunction; class CallQueuedClosure implements ShouldQueue { use Batchable, Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * The serializable Closure instance. * * @var \Illuminate\Queue\SerializableClosure */ public $closure; /** * The callbacks that should be executed on failure. * * @var array */ public $failureCallbacks = []; /** * Indicate if the job should be deleted when models are missing. * * @var bool */ public $deleteWhenMissingModels = true; /** * Create a new job instance. * * @param \Illuminate\Queue\SerializableClosure $closure * @return void */ public function __construct(SerializableClosure $closure) { $this->closure = $closure; } /** * Create a new job instance. * * @param \Closure $job * @return self */ public static function create(Closure $job) { return new self(new SerializableClosure($job)); } /** * Execute the job. * * @param \Illuminate\Contracts\Container\Container $container * @return void */ public function handle(Container $container) { $container->call($this->closure->getClosure(), ['job' => $this]); } /** * Add a callback to be executed if the job fails. * * @param callable $callback * @return $this */ public function onFailure($callback) { $this->failureCallbacks[] = $callback instanceof Closure ? new SerializableClosure($callback) : $callback; return $this; } /** * Handle a job failure. * * @param \Throwable $e * @return void */ public function failed($e) { foreach ($this->failureCallbacks as $callback) { call_user_func($callback instanceof SerializableClosure ? $callback->getClosure() : $callback, $e); } } /** * Get the display name for the queued job. * * @return string */ public function displayName() { $reflection = new ReflectionFunction($this->closure->getClosure()); return 'Closure ('.basename($reflection->getFileName()).':'.$reflection->getStartLine().')'; } }