我有一些运行很长时间(几个小时)的后台作业。
如果我在这些后台作业正在运行时部署我的应用程序,这些作业是否会附加到重新启动(从而终止作业)?
更具体地说,这些后台作业处理将大文件下载到/tmp
...意味着如果该测功机重新启动,它将中断下载。
我有一些运行很长时间(几个小时)的后台作业。
如果我在这些后台作业正在运行时部署我的应用程序,这些作业是否会附加到重新启动(从而终止作业)?
更具体地说,这些后台作业处理将大文件下载到/tmp
...意味着如果该测功机重新启动,它将中断下载。
部署时重新启动测功机,是的。
更重要的是,如果您正在下载到 /tmp,那么部署将创建一个带有空 /tmp 的新 slug,因此下载的任何内容都将不再存在。
Dynos 在部署时重新启动。
Heroku 每天也会自动循环一次。每当 Dynos 停止响应或停止并移动到另一个网络位置时,都可以自动重新启动 Dynos。正如约翰所说,这将是一个新实例,因此您之前下载的所有文件都将被删除。
您可以在这里查看一些案例 - https://devcenter.heroku.com/articles/dynos#the-dyno-manager
Heroku 的最佳实践是,在 Dynos 上不要有任何可写文件。