Повторная выпечка после изменения CDN пропустила старые посты

Администратор Discourse недавно предупредил меня, что стоит рассмотреть возможность использования CDN вместо прямого обслуживания файлов из S3. Я уже думал об этом в прошлом, но стоимость казалась слишком высокой и ненужной для нашего небольшого сообщества. Теперь я вижу, что расходы значительно ниже, поэтому я всё настроил. Я создал точку распространения CloudFront для существующего бакета, а затем добавил его URL в настройки Discourse. После этого я выполнил полную перепечку (rebake).

Перепечка прошла успешно и завершилась без ошибок. Создание новых постов работает корректно, и они используют CDN. Посты, опубликованные примерно после 2018 года (я не проверял точную дату отсечения), были правильно обновлены и теперь ссылаются на CDN. Однако посты 2017 года и старше, похоже, не были перепечены: в них по-прежнему содержатся прямые ссылки на бакет S3. Мне бы хотелось корректно перепечь эти посты, чтобы я мог с уверенностью отключить публичный доступ к бакету S3, не опасаясь, что это что-то сломает.

Не знаю, что ещё можно предпринять. Есть какие-то идеи? Спасибо.

О, постойте, погодите. Кажется, я понял, в чём проблема, мне только нужно это подтвердить.

Когда вы запускаете rake posts:rebake, это действительно сразу пересобирает все посты или просто ставит задачи в очередь sidekiq, которые затем займутся фактической пересборкой? Я заметил, что у меня теперь огромная куча задач Jobs::PullHotlinkedImages в очереди, что, в общем-то, вполне логично. Если после очистки очереди всё ещё останутся посты, требующие пересборки, значит, у меня проблема. В противном случае всё в порядке.

Да, всё верно — это фоновый процесс, который должен обрабатывать посты в порядке от новых к старым, то есть сначала обрабатываются самые свежие посты, а затем огромный накопленный запас более старых постов.