Discourse API 生成 429

您好,

我正在尝试使用 Discourse API 在论坛中提供一些有趣的回复。例如,如果有人在帖子中说“Linux”,Discobot 会回复“您的意思是 GNU/Linux?”

它工作正常,除非有人用相同的短语回复,然后我会收到大量 429 或空白响应,持续两分钟(时间几乎正好是两分钟),之后 API 会恢复正常处理响应。

例如:

Linux
FOSS
dotNet
Java
Linux

这将正常工作。但是:

Linux
FOSS
dotNet
Linux
Linux

这将导致失败。

您知道这个两分钟窗口是关于什么的吗?我们已经尝试调整了 app.yml 设置并调整了 API 速率限制。似乎没有产生任何影响。

谢谢!

我们需要更多信息。您正在调用哪个 API 端点并收到 429 错误?

1 个赞
https://forum.domain.net/t/1000/highestPost.json

对此发出 GET 请求

其中 highestPost 是帖子的 highest_post_number

这意味着您正在受到速率限制。如果您想跟踪新帖子,轮询效率非常低下。我能建议使用 Webhook 吗?这样您就可以对新帖子做出反应,而不是在什么都没发生时进行轮询。

当然,我可以看看 webhook。

您知道如何禁用响应速率限制吗?我认为我们已经在 app.yml 中更改了一些设置,包括此链接中与 API 相关的所有设置:

这是 Nginx 中的特定内容需要我们探索吗?

有一个 Nginx 模板是默认添加的。它将是 app.yml 的最前面几行之一。您可能需要删除关于速率限制的那一行并重新构建,使其生效。

3 个赞

太棒了。我会试试的。感谢您的帮助!

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