1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
-
- namespace Illuminate\Queue\Connectors;
-
- use Pheanstalk\Connection;
- use Pheanstalk\Pheanstalk;
- use Pheanstalk\PheanstalkInterface;
- use Illuminate\Queue\BeanstalkdQueue;
-
- class BeanstalkdConnector implements ConnectorInterface
- {
- /**
- * Establish a queue connection.
- *
- * @param array $config
- * @return \Illuminate\Contracts\Queue\Queue
- */
- public function connect(array $config)
- {
- $retryAfter = $config['retry_after'] ?? Pheanstalk::DEFAULT_TTR;
-
- return new BeanstalkdQueue($this->pheanstalk($config), $config['queue'], $retryAfter);
- }
-
- /**
- * Create a Pheanstalk instance.
- *
- * @param array $config
- * @return \Pheanstalk\Pheanstalk
- */
- protected function pheanstalk(array $config)
- {
- return new Pheanstalk(
- $config['host'],
- $config['port'] ?? PheanstalkInterface::DEFAULT_PORT,
- $config['timeout'] ?? Connection::DEFAULT_CONNECT_TIMEOUT,
- $config['persistent'] ?? false
- );
- }
- }
|