RedisConnector.php 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace Illuminate\Queue\Connectors;
  3. use Illuminate\Queue\RedisQueue;
  4. use Illuminate\Contracts\Redis\Factory as Redis;
  5. class RedisConnector implements ConnectorInterface
  6. {
  7. /**
  8. * The Redis database instance.
  9. *
  10. * @var \Illuminate\Contracts\Redis\Factory
  11. */
  12. protected $redis;
  13. /**
  14. * The connection name.
  15. *
  16. * @var string
  17. */
  18. protected $connection;
  19. /**
  20. * Create a new Redis queue connector instance.
  21. *
  22. * @param \Illuminate\Contracts\Redis\Factory $redis
  23. * @param string|null $connection
  24. * @return void
  25. */
  26. public function __construct(Redis $redis, $connection = null)
  27. {
  28. $this->redis = $redis;
  29. $this->connection = $connection;
  30. }
  31. /**
  32. * Establish a queue connection.
  33. *
  34. * @param array $config
  35. * @return \Illuminate\Contracts\Queue\Queue
  36. */
  37. public function connect(array $config)
  38. {
  39. return new RedisQueue(
  40. $this->redis, $config['queue'],
  41. $config['connection'] ?? $this->connection,
  42. $config['retry_after'] ?? 60,
  43. $config['block_for'] ?? null
  44. );
  45. }
  46. }