0

我的客户有一个包含产品的电子商务系统(大约有 6 万个产品项目)。价目表以 ZIP 格式放置在 URL 地址上。

我需要首先下载价目表,解压缩,然后打开 CSV 文件并开始逐行阅读。在他的数据库中更新了 CSV 中的价格(如果 CSV 中的产品价格与他的数据库中的不同,请使用 CSV 中的价格并更新数据库)。

但是,可以在 Heroku 上做到这一点吗?下载将近 40MB 的文件需要一些时间,将数据从 CSV 导入数据库(在 localhost 上导入大约需要 17 分钟 - 但这是将整个 CSV 导入数据库)。

你将如何解决这种情况?我有什么选择?不幸的是,没有办法更改 CSV 文件,所以我必须使用该文件......

谢谢

4

2 回答 2

2

关于heroku 上的文件系统有一个常见的误解。不是它是只读的,而是它是短暂的。您可以启动一个进程并开始写入文件系统,但是一旦该进程退出,数据就永远消失了。

因此,您确实可以下载一个 zip 文件然后对其进行处理,但即使您在处理时遇到错误,导致您的程序退出,解压后的数据也会丢失。您可能想考虑解压缩它,创建放在 S3 上的数据块,然后让任意数量的工作人员处理这些数据并使用您自己的数据库将其内部化。

于 2012-08-06T15:37:34.220 回答
1

这可以通过在工作进程的延迟作业上运行工作来实现。有关更多信息,请参阅:https ://devcenter.heroku.com/articles/ps 。请注意,如果这是您希望在计划的时间间隔内运行的常规任务,您也可以使用调度程序(https://devcenter.heroku.com/articles/scheduler)。

于 2012-08-05T20:47:04.873 回答