我正在实现一个需要查询JSON文件的Web服务(大小:~100MB;格式:[{},{},...,{}])约每秒70-80次,JSON文件每小时更新一次。 “查询JSON文件”意味着检查文件中是否存在具有特定值的属性的JSON对象。
目前我认为我将在Node.js中实现该服务,并将JSON文件导入( mongoimport )到MongoDB中的集合中。当请求进入时,它将查询MongoDB集合,而不是直接读取和查找文件。在Node.js服务器中,应该有另一个计时器服务,它在每小时检查JSON文件是否已更新,如果有,则需要使用新文件中的数据“重新填充”集合。
通过向外部API发送请求来检索JSON文件。 API有两种方法:methodA让我下载整个JSON文件; methodB实际上只是一个HTTP HEAD调用,它只是告诉文件是否已更新。我无法从API获得增量更新的数据。
我的问题在于每小时更新。随着服务的运行,请求不断进入。当计时器检测到JSON文件有更新时,它会下载它,当下载完成时,它会尝试将文件重新导入到集合中,我认为至少需要几分钟。有没有办法在不中断对集合的查询的情况下执行此操作?
以上是我的第一个想法。这个过程有什么不对吗?直接查看文件似乎太贵了,特别是每秒请求大约100次。