今日は未分類カテゴリからいくつかのトピックを非公開にし、削除しました。すると、メインのカテゴリ一覧ページでそのカテゴリの総数が「-11」と表示されるようになりました。
考えてみると、私が削除したトピックの多くは以前に非公開にされていたものです。これが関係しているのでしょうか?もしかすると、非公開化と削除を別々に行うことで、トピックごとにカウントが1ずつ減算されているのかもしれません。
これは自動的に修正されるでしょうか(時間が経てば、あるいは何らかのイベントが発生すれば)?
それとも、修正するために何か行うべきでしょうか?
よろしくお願いいたします。
(編集:整理しました。)
「いいね!」 1
simon
2
はい、それが問題です。私のテストサイトでもこの現象を再現できます。トピックをリストから外すと、そのトピックはカテゴリのトピック統計から除外されます。その後、リストから外されたトピックを削除すると、再びカテゴリのトピック統計から差し引かれます。つまり、単一のトピックをリストから外してから削除すると、統計上 2 つのトピックが削除されたことになってしまいます。
Discourse は 24 時間ごとに CategoryStats のバックグラウンドジョブを実行します。そのジョブが実行されれば、カテゴリの統計は修正されるはずです。もしサイトへの Rails コンソールアクセス権があり、ジョブの実行を待たずに修正したい場合は、以下のコマンドを手動で実行してください。
Category.update_stats
私は自分のサイトでこれをテストしました。このコマンドを実行することで、問題が解決しました。
「いいね!」 4
ありがとうございます。お待ちできるのですが、その情報を知れてよかったです。
追伸:自分で直ったことを確認しました! 
nbianca
(Bianca)
11
こんにちは、Jonathan さん、
この問題は再現できなくなりました。最新バージョンでもまだ発生していますか?
2.7.0.beta2 (afbaedef7d) がインストールされています。最新ではありませんが、これが関係しているかもしれません。
simon
16
問題を再現するには、トピックを非公開にし、カテゴリ統計のジョブが実行されるまで約24時間待ってから、そのトピックを削除する必要があります。これにより、カテゴリ統計からトピックが2回削除された状態になります。さらに24時間経過後、カテゴリ統計のジョブが再度実行されます。これで問題が解決するはずです。
この現象が起きる理由は、トピックを削除すると即座にカテゴリ統計から削除されるのに対し、トピックを非公開にしても、カテゴリの統計を更新する_daily_ジョブが実行されるまで統計から削除されないためです。そのジョブはvisibleなトピックのみをチェックします。
「いいね!」 4
nbianca
(Bianca)
18
こんにちは、
問題の原因を特定し、修正をレビューのために提出しました。最新のバージョンでまもなく利用可能になります。
「いいね!」 2
それは素晴らしいですね。大きな問題にはならなかったでしょう。おそらく、小規模な新規フォーラムでしか目立たない程度だったと思います。
ここで「解決策」を最終投稿に変更したいのですが、それができません。
「いいね!」 1