# 尝试设置主题计时器时出现 504 错误

**URL:** <https://meta.discourse.org/t/504-error-on-trying-to-set-a-topic-timer/188756>\
**Category:** Bug\
**Tags:** topic-timers\
**Created:** [2021年四月30日 21:15 UTC](https://meta.discourse.org/t/504-error-on-trying-to-set-a-topic-timer/188756 "2021-04-30T21:15:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![RBoy](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@RBoy](https://meta.discourse.org/u/RBoy)\
**Post date:** [2021年四月30日 21:15 UTC](https://meta.discourse.org/t/504-error-on-trying-to-set-a-topic-timer/188756/1 "2021-04-30T21:15:18Z")

</div>

我创建了一个新主题。几秒后，我尝试设置一个主题计时器，使其在 7 天后自动关闭。页面在那里卡住了大约一分钟，然后返回了 504 错误。我点击“确定”关闭错误提示并再次尝试，结果又卡住了约 30 秒，随后再次出现相同的错误。此外，我还注意到在此期间整个网站都无响应，无法处理新的请求，直到返回 504 错误后，网站才重新开始响应新请求。

 ![image](https://global.discourse-cdn.com/meta/original/3X/4/b/4b34522d01d38361badf65122cdad796053d788b.png)

该站点运行的是 2.7.0.beta7 版本（[bfa301bd7b](https://github.com/discourse/discourse/commits/bfa301bd7b9546dc6eab96b23209e82dafb5c559)）。

当我在新窗口中打开同一主题时，发现计时器确实被设置为 7 天（但我无法确认是否真正生效，也不知道如何验证）。如果进入 _Sidekiq_ 的 Web 界面，在“计划任务”（Scheduled jobs）下，我没有看到任何与 7 天相关的任务。

为什么会返回 504 错误？

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2021年五月3日 05:25 UTC](https://meta.discourse.org/t/504-error-on-trying-to-set-a-topic-timer/188756/2 "2021-05-03T05:25:52Z")

</div>

抱歉，复现步骤是什么？我不太清楚。

---

<div class="post-metadata">

**Author:** ![RBoy](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@RBoy](https://meta.discourse.org/u/RBoy)\
**Post date:** [2021年五月3日 13:34 UTC](https://meta.discourse.org/t/504-error-on-trying-to-set-a-topic-timer/188756/3 "2021-05-03T13:34:19Z")

</div>

这个问题无法稳定复现，目前仅出现一次。新建一个主题并随后设置关闭计时器时，系统抛出了错误。

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2021年五月4日 01:09 UTC](https://meta.discourse.org/t/504-error-on-trying-to-set-a-topic-timer/188756/4 "2021-05-04T01:09:02Z")

</div>

我猜复现步骤大致如下：

> 请求过多导致不堪重负，或网络连接不稳定。

504 错误很可能来自 NGINX 或路径中的某个代理。

我完全同意我们在这方面（全局范围内）可以做得更好。我们绝不应向用户显示“504 错误”，而应始终提示“我们联系服务器时遇到问题”之类的信息。

@martin 你能否在你的待办事项中加入一项，看看是否有全局性的解决方案？此事不急，我们还有更多紧迫的任务。
