如何向 Laravel Redis 客户端添加重试行为?

问题描述 投票:0回答:1

我将 Laravel 与 phpredis 一起使用,有时我会遇到

SSL: Connection reset by peer
形式的暂时性错误。我想配置 Laravel 在发生这种情况时重试该命令。

我目前看到的方法是:

  1. 使用
    Redis::extend()
    'phpredis'
    驱动程序替换为我自己的自定义
    Illuminate\Contracts\Redis\Connector
    实例。
  2. 在我的连接器中,创建一个连接,使用
    PhpRedisConnection
    代理对底层
    __call
    实例的所有调用,并使用重试逻辑包装调用。

感觉笨拙;有没有更简单的方法来获得命令级重试行为?

laravel redis phpredis
1个回答
0
投票

如果“命令级”重试行为是指代码中的各个调用,您可能会考虑

retry()
帮助程序

$foo = retry(5, function () {
    return Cache::get('foo');
}, 100);

这将重试最多 5 次,两次尝试之间的间隔为 100 毫秒。

© www.soinside.com 2019 - 2024. All rights reserved.