Webhook 竞态条件缓解策略

大家好!:waving_hand:

我正在尝试在 DiscourseDiscord 之间构建双向同步。在 Discourse 端,我使用了主题和帖子的事件(创建、编辑、删除、恢复)的 webhook,将更新中继到相应的 Discord 频道。另一个方向则通过一个使用 discord.js 构建的机器人来处理。

我在让我的中间件干净地处理事情时遇到了一些问题——主要是因为收到的主题和帖子 webhook 之间存在竞态条件

我很想听听关于如何最好地处理这个问题的建议。目前,我正在考虑完全放弃主题 webhook,并将所有内容都围绕帖子事件(使用 topic_id 作为统一标识符)来构建。不过,我更希望找到一种方法来让当前的设置生效,而不是从头开始重写所有内容。

非常感谢任何见解或建议!:folded_hands:

3 个赞

我刚决定在我的数据库中有该主题之前,先获取值并填充一些数据

1 个赞

这是指您在收到 topic 网页挂钩之前收到了 post 网页挂钩吗?鉴于其异步性,这确实可能发生。

2 个赞

因此,我之前同时处理主题和帖子 webhook,但现在我已切换为仅处理帖子 webhook,并利用其中的可用功能来链接线程 <> 主题。

2 个赞

这是一个很好的改变,它将使您的系统更加可靠,正如您所说,您可以随时通过 API 请求来丰富数据。

2 个赞