我在Redis上有一个工作队列和一个完成列表,生产者在其中推送工作,消费者在听。
这很好。但是,它不能处理客户端收到SIGKILL的情况,例如当OOM杀手决定您的进程需要终止时。
因此,我决定通过检测客户端断开连接来使其更具弹性。
最简单的方法是订阅client list
通知,因为我假设如果一个客户端失去与Redis的连接,它将无法充分执行,最好让其他客户端完成任务。在redis上可能吗?我避免每X秒扫描一次客户端列表。另一种方法是让客户端经常在Redis上更新自己的会话超时并监听超时通知,但是如果我只想观察断开连接,那将变得更加简单。
我尝试过的事情:
我尝试订阅键空间事件,但是找不到订阅客户端列表键的方法。