Warm tip: This article is reproduced from serverfault.com, please click

javascript-在Heroku上保存文件更改

(javascript - Save file change on heroku)

发布于 2016-12-22 19:47:38

我在heroku上有一个node.js应用,可以检查电子邮件,然后如果电子邮件符合certian的条件,它将回复。

因为heroku经常重新启动dyno,所以我制作了一个文件来保存我已经作弊的电子邮件的ID(一个小数组)(因此它不会两次答复同一封电子邮件),但是很傻的我,heroku重新启动了文件也是如此,因此不会保存我所做的任何更改。

有没有一种方法可以保存应用对其所做的文件更改?如果你知道做我想做的更好的方法?

Questioner
Cosmeoes
Viewed
11
rdegges 2016-12-30 01:45:04

Heroku强制执行此行为(本地文件删除内容),因为这是最佳做法。在本地写入文件无法很好地扩展,并且当你在同一VM上具有多个执行文件I / O操作的进程时,可能会导致一些奇怪的极端情况。

你应该使用的是数据库,缓存(例如Redis),甚至只是将文件直接写入文件存储服务(例如Amazon S3)

我意识到这听起来很烦人,即使对于一个简单的用例(例如你在此处所做的事情),你也必须做这些额外的事情-但Heroku的平台旨在执行最佳实践,以帮助人们构建可扩展的,可靠的软件。

如果你正在寻找一种无需额外麻烦即可完成此类工作的方法,则可能需要考虑从另一家公司购买小型VPS服务器,从而可以直接控制进程,磁盘等。