52 lines
1.1 KiB
PHP
52 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Queue\Connectors;
|
|
|
|
use Illuminate\Queue\RedisQueue;
|
|
use Illuminate\Contracts\Redis\Factory as Redis;
|
|
|
|
class RedisConnector implements ConnectorInterface
|
|
{
|
|
/**
|
|
* The Redis database instance.
|
|
*
|
|
* @var \Illuminate\Contracts\Redis\Factory
|
|
*/
|
|
protected $redis;
|
|
|
|
/**
|
|
* The connection name.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $connection;
|
|
|
|
/**
|
|
* Create a new Redis queue connector instance.
|
|
*
|
|
* @param \Illuminate\Contracts\Redis\Factory $redis
|
|
* @param string|null $connection
|
|
* @return void
|
|
*/
|
|
public function __construct(Redis $redis, $connection = null)
|
|
{
|
|
$this->redis = $redis;
|
|
$this->connection = $connection;
|
|
}
|
|
|
|
/**
|
|
* Establish a queue connection.
|
|
*
|
|
* @param array $config
|
|
* @return \Illuminate\Contracts\Queue\Queue
|
|
*/
|
|
public function connect(array $config)
|
|
{
|
|
return new RedisQueue(
|
|
$this->redis, $config['queue'],
|
|
$config['connection'] ?? $this->connection,
|
|
$config['retry_after'] ?? 60
|
|
);
|
|
}
|
|
}
|