# 开启自动关闭时到底会发生什么？

**URL:** <https://meta.discourse.org/t/what-exactly-happens-when-you-turn-on-auto-closing/382784>\
**Category:** Support\
**Created:** [2025年九月16日 09:52 UTC](https://meta.discourse.org/t/what-exactly-happens-when-you-turn-on-auto-closing/382784 "2025-09-16T09:52:03Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![jahan\_gagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jahan_gagan/32/501948_2.png) [@jahan\_gagan](https://meta.discourse.org/u/jahan_gagan)\
**Post date:** [2025年九月16日 12:14 UTC](https://meta.discourse.org/t/what-exactly-happens-when-you-turn-on-auto-closing/382784/2 "2025-09-16T12:14:14Z")

</div>

> [@one1](#):
>
> 假设您有很多非常旧的帖子，一旦您为某个类别启用该设置，它们就有资格被自动关闭。当您启用该设置时，比如说，在 5 年没有活动后自动关闭帖子，那么所有这些帖子何时会被自动关闭？是您点击保存后立即关闭吗？还是会在后台进行一些自动清理。这是否可能会导致性能问题？

- 默认情况下，类别上的自动关闭设置仅适用于新创建的主题。
- 现有主题在您保存设置后不会立即自动关闭。除非您明确地将自动关闭应用于它们，否则它们将保持打开状态。
- 有一个专用脚本（`rake topics:apply_autoclose`），可以通过服务器控制台运行，将自动关闭计时器应用于现有主题。此脚本会静默关闭符合条件的主题（根据您的设置，这些主题已足够旧），从而最大限度地减少通知。
- 使用脚本一次性将设置应用于_所有_旧主题是一项后台操作。如果您拥有一个非常大的社区和许多旧主题，这可能需要一些时间，但它是在服务器端运行的。性能影响因托管和主题数量而异，但 rake 任务专为批量操作而设计，不应对运行良好、配置得当的 Discourse 站点产生严重影响。
- 相关讨论在此处：

> [@Apply auto-close to existing topics](https://meta.discourse.org/t/apply-auto-close-to-existing-topics/70450):
>
> bookmark This documentation provides instructions on how to apply the auto-close feature to existing topics using a specific script. When you configure categories in Discourse to auto-close topics, this setting applies only to new topics. However, you can apply this setting to existing topics as well through a simple script. Topics closed using this script are closed silently to avoid unnecessary notifications. Accessing your site To begin, connect to your server via SSH and enter the Doc…

> [@one1](#):
>
> 第二个问题是，如果更改类别上的时间，之前被自动关闭的帖子会重新打开吗？我猜不会。我也猜没有简单的界面方法可以批量重新打开。对吗？

- 更改自动关闭时间不会重新打开已关闭的主题（即，关闭不会被撤销）。
- 没有内置的用户界面选项可以批量重新打开已关闭的主题。
- 但是，您可以使用脚本或 Rails 控制台命令来批量重新打开主题。

```plaintext
Topic.where(closed: true).where("created_at < 'your_date'").find_each do |topic|
  topic.update_status('closed', false, Discourse.system_user)
end

```

---

_[View the full topic](https://meta.discourse.org/t/what-exactly-happens-when-you-turn-on-auto-closing/382784)._
