临时文件系统和dynos重启

Ephemeral filesystem and dynos restart

我是 heroku 的新手,有 2 个问题:

  1. heroku 使用临时文件系统。因此,如果我将 php + nginx + mariaDB + docker 部署到 heroku 中(数据库之前已经有网站数据)。而一天后,heroku会将数据恢复到上次deloy。那是不是说白天写入数据库的数据会被删除,但是之前数据库(deloy时)的数据会保持不变?

  2. 一天dynos会重启一次。如果我的 python 程序在第 3 步中进行,是否必须重新开始(从第 1 步开始)?或者我的网站是运行,每天都会有一小段时间宕机?

谢谢。这将帮助我计划想法和价格。

does that mean that the data written to the database during the day will be deleted, but the data of the previous database (at deloy time) will remain the same?

在你的情况下,是的,如果你是 运行 maria db 作为同一 Docker 图像的一部分。 Heroku 模型需要在 dyno 之外保存任何持久存储——通常这意味着使用数据库附加组件。有几个免费选项可以尝试。

One day dynos will restart once. If my python program is in progress in step 3, will it have to start over (from step 1)?

再一次,是的。如果您有很长的 运行 进程,最好将它们移至后台作业服务器或计划任务。您可以通过拦截 unix TERM 信号来延迟关闭 30 秒,以允许正常关闭。对于比这更长的时间,最好将任务移动到调度程序(同样,存在免费选项)或专用后台作业。

Or if my website is running, it will be down for a short time every day?

Heroku 的重启时间通常很短(大约一两秒)。可以通过启用预启动功能来减少停机时间,该功能在将请求切换到它之前在后台启动替换测功机。

对于初学者来说,Heroku 模型可能看起来很复杂,但所有的要求都有助于确保应用程序健壮并准备好在需要时进行扩展。您可以通过搜索“12 因素应用程序”来了解基本理念。