【问题标题】:Failure to edit a file hosted on Heroku using python无法使用 python 编辑 Heroku 上托管的文件
【发布时间】:2019-10-14 16:38:16
【问题描述】:

我已经在 Heroku 上部署了我的 python 脚本。该脚本使用 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)

【问题讨论】:

  • 很可能 heroku 不会在服务器重新启动后保留您的文件。因此,每次重新启动时,您都会重新开始。考虑使用数据库或某种持久存储。
  • 谢谢,不知道每次重启都会删除文件。

标签: python-3.x heroku


【解决方案1】:

Heroku 有一个ephemeral filesystem。 每当您部署应用程序时,都会构建一个容器(非常类似于 Docker)。然后在运行时执行。

这意味着任何文件更改都不会在应用重新启动或重新部署后保留,因此您的问题在这里。

您需要将文件计数器存储在持久性数据库中,例如 PostgreSQL 或 Redis。 Heroku 将这些作为附加组件提供。

【讨论】:

  • 谢谢,不知道每次重启都会删除文件。这对先生很有帮助。
猜你喜欢
  • 2013-07-22
  • 2013-02-28
  • 1970-01-01
  • 2021-07-09
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
相关资源
最近更新 更多