聊天信息显示顺序错误

在最新的 Discourse 版本中,但这个 bug 我已经知道几周了。

聊天消息有时(不频繁,但可能 20% 的时间)会以错误的顺序出现,这意味着发送新消息可能会出现在先前消息的上方。

有人遇到过这种情况吗?我不确定如何重现。

我这边一切正常。你用线程吗?我不。

我们会的,不过它似乎在私信聊天中也会发生,而不是在帖子中。你认为这与启用了帖子有关吗?

老实说——我不认为有什么,只是随便猜一下。

但因为没有其他论坛遇到这种情况(否则这里会有好几个帖子),而且我觉得帖子不像人们想象的那么受欢迎,所以改变顺序听起来像是失败的线程处理,这个猜测很容易做出。

或者时间戳会出错。

但很快就会有人来解决这个问题。

我们每天在内部使用聊天,但似乎没有收到过关于此问题的报告。

这个问题影响了你们论坛多少人?您能否分享有关您设置的其他信息?例如:移动设备还是桌面设备、网络速度、浏览器、打开的聊天频道数量等。通常是在几分钟后发生的吗?否则,我们需要更多信息才能解决这个问题。

1 个赞

谢谢。

  • 手机和平板电脑 - 特别是我们只收到 iPhone 和 iPad 用户报告的问题
  • 网络速度 - 不太确定。我们具体在寻找什么?
  • Safari 浏览器
  • 打开的聊天频道数量 - 我们是在说他们有多少个(包括私信)?因为在我看来,你一次只能“打开”一个?
  • 关于是否在 X 分钟后发生 - 我们会检查并在此更新。

“在我发送其他内容或退出聊天并重新进入,或者刷新后,它看起来还可以。”

来自我们论坛用户的反馈

有什么方法可以清除聊天记录或进行一些清理吗?@nat

我们有一个拥有超过 50,000 名用户的频道,聊天记录设置为 7 天,但我想知道这是否太多了?

这里有一个有趣的用例,涉及 50,000 用户。(抄送 @davidb)我认为这可能是你看到我们看不到的东西的原因。

如果你愿意进入控制台,我们或许可以用 Chat::MessageDestroyer 做些什么。但目前还没有“只保留此频道中最后 10,000 条消息”的功能,如果你是这么想的话。

2 个赞

这会删除聊天中的所有消息吗?

我只是假设存在数据库过载或类似情况,或者有 IP 阻止,这就是为什么有时用户在刷新之前看不到其他消息的原因?

这段代码可能有助于了解 MessageDestroyer 如何用于在聊天保留期过后删除直接消息:

理论上,您可以选择任何 id 小于特定数字的消息,并将它们传递给要销毁的消息(请参阅 destroy_in_batches 方法)。

是的,正如 David 所说 :point_up:t2: 一般来说,我们没有收到过除了保留期之外,以特定方式清除聊天消息的请求。

如果您有具体的想法,并且可以在控制台中操作,可以告诉我们,我们可以为您提供一些可以安全运行的命令。

1 个赞

谢谢!我只是不确定这是否与此问题直接相关,或者我是否在白费力气。

有人在吗?想知道是不是只有我们看到这个?它似乎只出现在大型聊天(50-100K成员)中。

1 个赞

您有一个拥有 5 万到 10 万成员的聊天群? :open_mouth:

1 个赞

是的😅 我认为这可能是问题所在

1 个赞

我有一些更新 -
这个问题还没有解决,但似乎是这样:有时,可能是在高峰时段,聊天消息没有被获取。因此,用户会看到好像没有发送新消息,然后在一段时间后或刷新时,所有消息都会出现。

这是一个拥有大量用户(10 万以上)的聊天频道,尽管大多数用户并不活跃。

2 个赞