为何在 Sidekiq 中显示有超过300万个排队的作业?我怎样才能停止生成这个队列?

现在3k,就在我刚清理完所有这些之后

我尝试在管理员仪表板中查找任何聊天或摘要设置,但一无所获。

知道它们从哪里来的吗? :sob:

附注:这些任务让我的网站运行得非常缓慢 :sob:

1 个赞

Sidekiq 的“重试”选项卡中有什么?

这里有 6 个正在重试的作业。这是一个可以接受的数量,我知道原因。

如果这个数字达到数千,那情况就 不妙 了,你需要采取行动。

您的电子邮件日志或服务器错误日志 /logs 中有任何错误吗?

需要考虑的事情:

您的电子邮件服务提供商是否在限制您?您是否已超出您所使用的服务级别的速率限制?您是否已支付了服务费?

3 个赞

是零

并且日志中似乎没有与电子邮件相关的问。

是否有任何与聊天摘要相关的设置我可以关闭,或者我应该直接关闭聊天?

队列中的所有作业(在很大程度上)都是 UserEmail 作业吗?

请检查您的电子邮件服务仪表板(在您的电子邮件服务提供商处,而不是在 Discourse 上),看看那里是否有任何信息。

1 个赞

是的,几乎所有这些都是用户电子邮件作业

我检查了 Mailgun(我的账户下有 4 个正在运行的实例)

第一个是唯一遇到此问题的实例,日期似乎没有问题,我也检查了日志,但没有发现任何可疑之处。

他们有审计跟踪吗?可以看到连续发送邮件的记录吗?

最后发送的邮件是什么时候?

像这样?

最后一个应该是 12 分钟前

所以有些正在通过,但它的处理速度够快吗?

我该如何检查?

在 Discourse(管理/电子邮件/已发送)中,我看到聊天摘要电子邮件的发送频率很低,每天最多 5-6 封,大多数时候只有 1 封或没有。:sob: 为什么它会在 Sidekiq 中创建这么多作业?

1 个赞

查看管理员中的电子邮件日志……这可能会让你更清楚

我注意到的一件事是,在我升级到 3.4.0.beta4-dev 后,sidekiq 队列问题就开始出现了,我大约在同一时间安装的另一个实例似乎也有这个问题(正在确认中)。

另外,我还查看了 ID,似乎系统正试图向所有用户发送聊天摘要 :thinking:
这正常吗?

更新:
关闭聊天功能可以阻止这些作业再次排队,但我的网站需要聊天功能,我还在寻找其他解决方案。

又一次更新:
我关闭了聊天功能两天,然后重新开启,并将聊天频道保留天数从 180 天更改为 3 天。现在似乎运行正常,我还会继续关注。

更新 02/01:

我将保留天数设置为 7 天,目前大约有 1,101,685 个已排队的作业,似乎我的服务器能够处理这个数量,并且网站不会变慢。

4 个赞

@th21 您有多少用户和聊天频道?

low 队列的处理速度(快,或者说慢😢)是怎样的?

9k 用户和 3 个频道(包括 1 个默认的 staff 频道)

这是当前状态

在我进行上述更改之前,low 队列的大小似乎从未减少

抱歉 @th21,这确实是一个 bug,将通过 FIX: chat was enqueueing too many "chat summary" emails by ZogStriP · Pull Request #31133 · discourse/discourse · GitHub 修复。

我们有一个查询,用于列出所有“未读”提及或聊天私信的用户,但它过于“聪明”而导致错误。它没有为频道提及或私信未读消息排队“聊天摘要”(即电子邮件通知),而是为每条消息排队了一个作业 :expressionless: 由于该作业每 5 分钟运行一次,它很容易用无用的作业使 sidekiq 膨胀……(注意:感谢的是,电子邮件没有被发送,因为我们无法检索到任何提及)。

4 个赞

谢谢,此提交预计何时合并到 test-passed?

1 个赞

48 小时内

1 个赞

@th21 已审核并合并 :+1:

1 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。