halaei/bredis

该包已被废弃且不再维护。作者建议使用 laravel/framework 包。

Laravel Redis 队列驱动长轮询(阻塞弹出)

3.0.0 2017-09-23 11:12 UTC

This package is auto-updated.

Last update: 2022-02-01 13:01:33 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

何时需要 bredis?

当以下条件都满足时,你需要 bredis

  1. 你不想因为工作进程正在睡眠而延迟作业。
  2. 你不想在当前的 Redis 队列驱动上运行 queue:work --sleep=0,因为这会在没有作业时消耗 CPU。

因此,你需要你的工作进程空闲等待作业,并在作业到达时立即处理它们,几乎没有延迟。使用 bredis,你可以愉快地运行 queue:work --sleep=0,而不用担心忙等待和 CPU 过载。

安装

1. 通过 compioser 安装包

composer require halaei/bredis

2. 将服务提供者添加到你的 config/app.php

Halaei\BRedis\BlockingRedisServiceProvider::class

3. 将 bredis 连接添加到 app/queue.php

'bredis' => [
    'driver'      => 'bredis',
    'connection'  => 'default',
    'queue'       => 'default',
    'retry_after' => 90,
    'timeout'     => 10, //Maximum seconds to wait for a job
],

请注意,如果您需要在上面的配置数组中增加 'timeout',则还应增加数组中的 'retry_after' 以及 queue:work 命令中的 --timeout。

警告:bredis 队列工作进程不处理延迟或保留的作业。因此,当使用 bredis 工作进程时,你必须至少还有一个 Redis 工作进程。

注意:bredis 队列驱动与 redis 驱动100%兼容。换句话说,您可以使用 redis 驱动推送作业,并使用 bredis 驱动弹出它们,或者反之亦然。