2015-09-30 29 views
0

我有一组100 Rss链接,我每5/30/45分钟解析它。 因此,大多数时间收到的记录可能是相同的,但是肯定可能会添加一些额外的记录,因此可能会有所不同。在MySql和Node.js中的批处理

记录不应在数据库中重复(无重复记录)。 如果记录已经存在,检查记录是否相同,如果不一致则更新,否则拒​​绝,如果不存在则插入。

可能途径:

  1. 从在一个循环中保持检查,插入,这将真正杀死的应用,因为有更多的记录的node.js。
  2. 编写存储过程。
  3. 批处理。

我对批处理没有想法,所以如果有人可以请共享关于批处理的信息在mysql中。如何使用一些示例代码上传批量数据会非常有帮助。

回答

0

如果像普通的RSS提要,你给料只增加了新的记录,不改变现有的,我认为一个直接的解决办法是:

  1. 检索的这个最新的存储记录从MySQL数据库

  2. 围棋在RSS供稿供稿通过记录,从最近的一次,并及时搬回

  3. 如同你从MySQL中检索到的一个饲料中的记录数据库。如果匹配,请停止浏览Feed并将比此更新的记录添加到数据库。

根据更新频率的不同,这不应该让您的应用程序每次使用很长的时间都很忙。

在另一方面,如果你想占现有记录你可以编辑:

  • 使用流解析和异步处理数据immediatey为你加载它。

  • 如果提要的大小不是很大,可以将记录解析到一个数组中,然后使用一个队列逐个处理它们。但是,如果您的Feed比较大,则可能会担心内存。