3

我在 Play Framework 2 中使用 Ebean 来存储一些基本信息。这个应用程序被推送到 Heroku。一切似乎都很好,我可以用 Ebean 写/读,但是几个小时后,当我访问应用程序时,存储的所有内容都消失了。

这个来源我知道,当应用程序不经常访问时,它需要启动。这意味着,运行中的应用程序会在空闲一段时间后关闭,对吧?

很少访问的免费应用程序需要几秒钟(有时更长)才能启动 - 如果您需要您的应用程序快速响应,即使是在一段时间内第一次访问时也可以升级到付费计划

我发现这个问题Heroku 没有永久文件系统?这解释了heroku上没有永久文件系统。

因此,Ebean 将数据存储在文件系统上,这意味着它们会在一段时间后被擦除,因为 Heroku 上没有永久文件系统。

我应该提到我在 Heroku 上使用免费应用程序。任何建议如何解决这个问题?也许我错过了一些配置,或者什么......

编辑

我使用保存在文件中的 H2 数据库。

4

2 回答 2

0

为什么不使用免费计划中提供的 Heroku 的 Postgresql?

最近几天使用它有一些问题,所以配置它应该没有问题,即: https ://stackoverflow.com/a/12196800/1066240

于 2012-09-01T12:57:41.717 回答
0

来自heroku 文档

已扩展 web dyno(运行 web 进程类型的 dyno)数量以便仅运行一个 web dyno 的应用程序将在一个小时不活动后让该 web dyno 空闲。...运行超过 1 个 web dyno 的应用程序永远不会闲置。工人测功机永远不会闲置。

关于文件系统生命周期:

临时文件系统

每个 dyno 都有自己的临时文件系统,以及最近部署的代码的新副本。在 dyno 的生命周期中,它的运行进程可以将文件系统用作临时暂存器,但是任何其他 dyno 中的进程都看不到写入的文件,并且在停止或重新启动 dyno 时,写入的任何文件都将被丢弃。

因此,由于您将 H2 与存储在文件系统上的文件一起使用,数据将在不活动一小时后丢失。

要存储您的数据,我强烈建议您使用Postgres Heroku 插件,它免费提供 10.000 行。

于 2012-09-01T15:56:52.303 回答