看来使用Bull 3.21.1作为默认配置的工作队列会导致Redis在成功运行的情况下无限期地保留key,最终耗尽Redis中的内存并导致崩溃。这是一个示例体验,描述如下。我也有同样的经历。这是另一篇文章,其中解释了虽然 Bull 的默认行为不可能在不导致现有用户发生重大更改的情况下实现无内存泄漏,但可以更好地记录默认行为将无限期地保留已完成作业的 Redis 密钥,以及什么该配置是为了在Redis中不泄漏内存的情况下获取操作。 Bull 的文档在撰写此问题时仍然没有提及此行为、配置点或解决方案。
由于 Bull 未记录的默认行为永久保留已完成作业的 Redis 密钥,导致生产(或者更幸运的是预生产)崩溃,我该如何恢复?