为用户分配随机的摘要时间?

我最近将一个拥有约 1400 名用户的 phpBB 论坛迁移到了 Discourse。除了少数几个账户外,所有的摘要似乎都从早上 8 点开始发送。有没有办法为用户分配 00:00 到 23:00 之间的随机时间?

– Geoff

我不知道,但有人(AI)告诉我:

https://ask.discourse.com/discourse-ai/ai-bot/shared-ai-conversations/wisnZ2lMtzSY1ji_QM8BiA

点击保存器:不,如果 AI 知道并且没有产生幻觉。

我认为您可以为所有用户修改 user_stats.digest_attempted_at,并为其赋予一个随机值。也许您可以为他们当前的 user_stats.digest_attempted_at 值增加 0-24 小时。

我猜到我可能需要这样做。但是,我习惯于共享服务器环境,在那里我可以远程连接到数据库服务器。我非常擅长 SQL,但我不知道如何连接到 DigitalOcean 实例上的数据库。任何提示都将不胜感激。

您想从 Rails 进行操作,而不是直接修改数据库。

但您可以

./launcher enter app
su - postgres
psql discourse

然后进行操作。

您可以查看 Administrative Bulk Operations,我认为您会找到一些看起来像这样的示例

users=User.where(something)
users.each do |user|
   user.update(field: value)
end

非常感谢您的指导。我决定通过 Rails 来实现太难了,所以我找到了通过 postgres 来实现的方法。这是我的解决方案:

./launcher enter app
su - postgres
psql discourse
UPDATE user_stats SET digest_attempted_at = digest_attempted_at - interval '1' DAY * random();

在我看来,这看起来是对的。

我认为这对它来说足够安全了。我理解“坚持你知道的”的方法,但 Rails 提供了很多保护措施(确保事物得到强制执行,表保持连接等等)。

很高兴你解决了!

检查电子邮件日志,一切都已均匀分布。 感谢您的帮助!

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.