#python #heroku #heroku-cli
Вопрос:
Я новичок в Хероку. У меня есть скрипт на python, который я планирую развернуть на Heroku, я пишу код на локальном языке, а затем отправляю его на Heroku (git push heroku master). Я замечаю, что при нажатии код начинает выполняться снова и снова. Теперь я ранее работал с Heroku над другим приложением и другим фрагментом кода, но не сталкивался с этой проблемой. Для этого скрипта я создал Расширенный планировщик (который настроен на запуск один раз в день и установлен в неактивное состояние, я проверил).
Не вставляю код здесь, потому что я не знаю, какой фрагмент кода может вызвать проблему, плюс код отлично работает в локальном, а проблема только в Heroku. Однако логика кода выглядит примерно так:
- Получите время начала и окончания интервала из файла JSON.
- Время записи в файл.
- Отправляйте запросы в соответствии с интервалом и собирайте данные с каждым.
- По завершении отправьте данные по электронной почте на указанный адрес.
- Перейдите к следующему интервалу времени и повторите 1-4 раза.
- Завершите программу, когда будут собраны все временные интервалы.
У меня действительно есть цикл while в сценарии, но я проверил, что выполнение кода завершается, вне цикла, где я также упомянул sys.exit(0) для завершения программы. Но код снова запускается с самого начала. Итак, похоже, это какая-то проблема от Heroku.
Ошибок нет, но я продолжаю видеть эти журналы:
[2021-08-16 14:56:08 0000] [11] [ИНФОРМАЦИЯ] Выход работника (pid: 11) [2021-08-16 14:56:08 0000] [13] [ИНФОРМАЦИЯ] Загрузочный рабочий с pid: 13
Так,
- Я бы хотел, чтобы сценарий не выполнялся, когда я нажимаю на Heroku.
- Я бы хотел, чтобы код выполнялся только один раз и не выполнялся снова.
Пожалуйста, помогите с этим, большое спасибо.
Правка: не уверен, что это уместно, но у меня также есть две команды time.sleep(2.1) в сценарии.