41 lines
1.0 KiB
PHP
41 lines
1.0 KiB
PHP
<?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
|
|
);
|
|
}
|
|
}
|