Server IP : 127.0.0.2 / Your IP : 3.144.112.72 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/ |
Upload File : |
<?php namespace Illuminate\Queue; use Closure; use InvalidArgumentException; use Illuminate\Contracts\Queue\Factory as FactoryContract; use Illuminate\Contracts\Queue\Monitor as MonitorContract; class QueueManager implements FactoryContract, MonitorContract { /** * The application instance. * * @var \Illuminate\Foundation\Application */ protected $app; /** * The array of resolved queue connections. * * @var array */ protected $connections = []; /** * The array of resolved queue connectors. * * @var array */ protected $connectors = []; /** * Create a new queue manager instance. * * @param \Illuminate\Foundation\Application $app * @return void */ public function __construct($app) { $this->app = $app; } /** * Register an event listener for the before job event. * * @param mixed $callback * @return void */ public function before($callback) { $this->app['events']->listen(Events\JobProcessing::class, $callback); } /** * Register an event listener for the after job event. * * @param mixed $callback * @return void */ public function after($callback) { $this->app['events']->listen(Events\JobProcessed::class, $callback); } /** * Register an event listener for the exception occurred job event. * * @param mixed $callback * @return void */ public function exceptionOccurred($callback) { $this->app['events']->listen(Events\JobExceptionOccurred::class, $callback); } /** * Register an event listener for the daemon queue loop. * * @param mixed $callback * @return void */ public function looping($callback) { $this->app['events']->listen('illuminate.queue.looping', $callback); } /** * Register an event listener for the failed job event. * * @param mixed $callback * @return void */ public function failing($callback) { $this->app['events']->listen(Events\JobFailed::class, $callback); } /** * Register an event listener for the daemon queue stopping. * * @param mixed $callback * @return void */ public function stopping($callback) { $this->app['events']->listen(Events\WorkerStopping::class, $callback); } /** * Determine if the driver is connected. * * @param string $name * @return bool */ public function connected($name = null) { return isset($this->connections[$name ?: $this->getDefaultDriver()]); } /** * Resolve a queue connection instance. * * @param string $name * @return \Illuminate\Contracts\Queue\Queue */ public function connection($name = null) { $name = $name ?: $this->getDefaultDriver(); // If the connection has not been resolved yet we will resolve it now as all // of the connections are resolved when they are actually needed so we do // not make any unnecessary connection to the various queue end-points. if (! isset($this->connections[$name])) { $this->connections[$name] = $this->resolve($name); $this->connections[$name]->setContainer($this->app); } return $this->connections[$name]; } /** * Resolve a queue connection. * * @param string $name * @return \Illuminate\Contracts\Queue\Queue */ protected function resolve($name) { $config = $this->getConfig($name); return $this->getConnector($config['driver'])->connect($config); } /** * Get the connector for a given driver. * * @param string $driver * @return \Illuminate\Queue\Connectors\ConnectorInterface * * @throws \InvalidArgumentException */ protected function getConnector($driver) { if (isset($this->connectors[$driver])) { return call_user_func($this->connectors[$driver]); } throw new InvalidArgumentException("No connector for [$driver]"); } /** * Add a queue connection resolver. * * @param string $driver * @param \Closure $resolver * @return void */ public function extend($driver, Closure $resolver) { return $this->addConnector($driver, $resolver); } /** * Add a queue connection resolver. * * @param string $driver * @param \Closure $resolver * @return void */ public function addConnector($driver, Closure $resolver) { $this->connectors[$driver] = $resolver; } /** * Get the queue connection configuration. * * @param string $name * @return array */ protected function getConfig($name) { if (is_null($name) || $name === 'null') { return ['driver' => 'null']; } return $this->app['config']["queue.connections.{$name}"]; } /** * Get the name of the default queue connection. * * @return string */ public function getDefaultDriver() { return $this->app['config']['queue.default']; } /** * Set the name of the default queue connection. * * @param string $name * @return void */ public function setDefaultDriver($name) { $this->app['config']['queue.default'] = $name; } /** * Get the full name for the given connection. * * @param string $connection * @return string */ public function getName($connection = null) { return $connection ?: $this->getDefaultDriver(); } /** * Determine if the application is in maintenance mode. * * @return bool */ public function isDownForMaintenance() { return $this->app->isDownForMaintenance(); } /** * Dynamically pass calls to the default connection. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return $this->connection()->$method(...$parameters); } }