Есть ли способ отличить запланированные перезапуски Heroku от динамометра и новую сборку? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть некоторый код в моем приложении, который очищает наш кеш (используя API Cloudflare) каждый раз, когда он запускается, так что при каждом изменении веб-сайта он мгновенно отображается для всех, а не старая версия, остающаяся в кеше Cloudflare на неопределенный срок.

Героку перезапускает мой динамо каждые 24 часа. Это очищает Cloudflare без причины, вызывает большой всплеск трафика и портит аналитику.

Есть ли способ обнаружить при запуске, происходит ли перезапуск приложения из-за фактического развертывания Heroku или просто из-за их ежедневного перезапуска?

Один из способов, который я рассмотрел, - это использование GitHubпубличный API для проверки при запуске, если коммит был передан мастеру за последний час, но это похоже на хак, и, возможно, есть лучший способ.

1 Ответ

0 голосов
/ 30 октября 2019

Это классический вариант использования для задачи на этапе выпуска (жирный шрифт):

На этапе выпуска можно запускать определенные задачи перед новым выпуском вашего приложения развернуто. Этап выпуска может быть полезен для таких задач, как:

  • Отправка CSS, JS и других ресурсов из пула вашего приложения в корзину CDN или S3
  • Заполнение или аннулирование кэшахранит
  • Запуск миграций схемы базы данных

Если задача фазы выпуска завершается неудачно, новый выпуск не развернут, оставляя текущий выпуск без изменений.

Переместите логику «очистки кэша» в отдельный скрипт и добавьте его в Procfile, например:

web: python some_main_command.py
release: python clear_cache.py
...