对于我的用户的新导入功能,我使用fgetcsv读取由LibraryThing和Shelfari等社交图书编目网站生成的CSV文件,然后我运行一系列亚马逊查询以从文件中查找ISBN。我希望能够让用户确认符合特定条件的标题,然后将其添加到当地的书架中。
其中一些文件将有数百或数千条记录,而且我每秒平均不能超过1次使用亚马逊查询。我还希望用户确认我们的图书正确匹配。我想我应该用10或20条记录的块处理CSV文件,并显示“命中”以供用户确认。但我无法弄清楚如何有效地做到这一点。
我可以将CSV文件读入一个数组,例如只选择ISBN,我知道我可以在数组上使用一个简单的循环来测试针对亚马逊的10或20条记录。但是,如何允许用户接受或拒绝批量记录,然后在不重新运行fgetcsv的情况下再次运行fgetcsv并重新检查10到20个记录?
是否有一些简单的方法允许数组在页面加载之间保持不变?或许我可以暂停接受循环内部的用户输入
答案 0 :(得分:0)
为什么不做一个'延迟'导入方法? 允许CSV导入,处理“临时存储”数据库中的数据,并在后端通过亚马逊流程查找ISBN。
系统会提示用户“您的记录正在处理中,一旦我们完成验证,您将被要求查看”,等等;
此时,他们可以在本地浏览您的商家信息,而不受亚马逊的1秒/秒ISBN查询限制。我怀疑用户是否希望在处理10/20时坐在那里然后等待下一页和下一页更多。
所以这个过程应该像这样折叠:
听起来怎么样?更多的工作,但似乎是处理像这样的大数据条目的最佳方法。