我目前正在使用我的网络应用程序中的Heroku,我目前面临以下设计挑战:
每天一次,我必须下载大型产品数据文件(如果是GZip,则最多10到20个文件,最多10 MB,否则最多50 MB)并将它们提供给数据库,然后我会查询产品搜索我的应用的功能,使用用户关键字。
注意:可以在每次运行作业时清除/清除产品数据库,不需要保留数据。我甚至认为它可能应该被丢弃,以避免巨大的存储成本......
所以我需要建议如何设计一个能够做到这一点的系统,使用Heroku附加组件,并且这将保持"经济实惠"。我很感激建议:
运行下载/数据库馈送作业的方法(即 相对较长的任务)
数据库引擎本身,允许执行快速关键字 对Web应用程序的查询是" snappy"
答案 0 :(得分:1)
您可以使用以下组件构建此系统:
您需要在Postgres数据库中添加表格,以获取您将要存储的产品信息,这是权威的记录系统。您需要使用Tire gem将Rails ActiveRecord模型连接到ElasticSearch索引。您的Web应用程序可以使用ActiveRecord模型和Tire gem集成对您的ElasticSearch搜索引擎进行产品搜索,并从Postgres数据库中提取所有详细信息。
您可以使用Rake将批处理作业更正为使用产品目录的最新副本更新您的应用程序:
此产品更新佣金任务可以安排在非高峰时间(例如当地时区凌晨3点)每天运行。