Ошибка редактирования файла, размещенного на Heroku с использованием python - PullRequest
0 голосов
/ 14 октября 2019

Я развернул свой скрипт на Python на Heroku. Скрипт использует цикл for для итерации и обновляет файл на каждой итерации. Если сервер отключается, скрипт проверяет значение, сохраненное в файле, и он должен продолжить итерацию с того места, где он ушел. В этом случае сценарий перезапускается с 1, что является значением, которое я указал при развертывании сценария. Если я запустил этот скрипт на своем локальном компьютере и остановил его, он продолжил с того места, где он оставался.

Ниже приведен пример кода

if __name__ == "__main__":
      with open('file.txt', 'r') as file:
           file_data = file.readlines()
           count = file_data
      for i in range(count, some_long_number):
           with open('file.txt', 'w') as file:
                file.writelines(str(i))
           time.sleep(900)

1 Ответ

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

Heroku имеет эфемерную файловую систему . Контейнер (очень похожий на Docker) создается при каждом развертывании вашего приложения. Затем он выполняется во время выполнения.

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

Вам необходимо сохранить счетчик файлов в постоянной базе данныхтакие как PostgreSQL или Redis. Heroku предлагает их как дополнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...