CDN変更後の再ベイクで古い投稿が見逃されました

Discourse の管理者から最近、S3 から直接配信するのではなく CDN を利用した方が良いとアドバイスされました。以前も検討したことがありましたが、コストが高く、小規模なコミュニティには不要だと感じていました。しかし、現在はコストが大幅に低下しているため、設定を行いました。既存のバケットに CloudFront 配信ポイントを作成し、その URL を Discourse に追加しました。その後、フルリベイクを実行しました。

リベイクは問題なく完了しました。新しい投稿を作成すると正常に CDN が利用されます。2018 年頃以降の投稿(正確な切り替え日は確認していませんが)は正しく CDN を指すように更新されています。しかし、2017 年以前の投稿はリベイクが正しく行われていないようです。まだ S3 バケットを直接指す URL のままです。これらの投稿を正しくリベイクして、S3 バケットへの公開アクセスを無効にしたいと考えています。その際、何かが壊れないことを確信したいからです。

他にできることが思い当たりません。何かアイデアはありますか?よろしくお願いします。

あ、ちょっと待って。問題の理由がわかったかもしれません。確認が必要ですが。

rake posts:rebake を実行した際、すべての投稿が即座に再構築されるのか、それとも実際の再構築を行う Sidekiq のジョブを単にキューに追加するだけなのか、どちらでしょうか?現在、Jobs::PullHotlinkedImages のジョブが大量にキューに溜まっていることに気づきました。これは非常に理にかなっています。キューが空になった後でも再構築が必要な投稿が残っているようであれば、問題があると言えます。そうでなければ、すべて正常です。

はい、その通りです。これはバックグラウンドプロセスであり、最新の投稿から古い投稿の順で処理されます。そのため、最新の投稿が最初に処理され、その後、古い投稿の膨大な backlog が処理されます。