干得好,@RGJ!
在我们期待修复的同时,顺便说一句,如果这个问题不会导致我遇到的连锁问题,那将是很好的,这些问题几乎让我的论坛彻底瘫痪。具体来说:
- 电子邮件失败似乎会非常快速地重试,这会导致 sidekiq 队列的规模爆炸,并且这些任务导致 CPU 使用率达到 ~100%。
- 此外,某些东西(崩溃或重启)导致 Redis 写入巨大的临时文件,我假设这些文件包含 sidekiq 队列的状态。虽然可以安全地删除它们,但它们很快就填满了磁盘,这导致了更多的崩溃,等等。我有一些其他的磁盘空间可以释放,以便重新启动论坛并弄清楚发生了什么,但这可能不适用于所有人。(而且,在这种情况下,也很难确认 Redis 临时文件实际上可以安全删除。)
我猜最简单的解决方案是减慢失败电子邮件作业的重试速度——或者至少是那些没有密码重置等时效性约束的作业。鉴于电子邮件问题不太可能很快解决,而且大多数/所有邮件发送者在收到消息后都会进行自己的重试,这似乎是合适的。