【问题标题】:Batch Processing in MySql and Node.jsMySql 和 Node.js 中的批处理
【发布时间】:2015-09-30 12:00:58
【问题描述】:

我有一组 100 个 Rss 链接,我每 5/30/45 分钟解析一次。 所以大多数时候收到的记录可能是相同的,但肯定会添加一些额外的记录,因此可能会有所不同。

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

可能的方式:

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

我不知道批处理,所以如果有人可以分享有关在 mysql 中批处理的信息。如何用一些示例代码上传批量数据将非常有帮助。

【问题讨论】:

    标签: mysql database node.js batch-processing


    【解决方案1】:

    如果与常规 RSS 提要一样,您的提要仅添加新记录而不更改现有记录,我认为直接的解决方案是:

    1. 从 MySQL 数据库中检索此提要的最新存储记录

    2. 浏览 RSS 提要中的记录,从最近的记录开始并及时返回

    3. 将提要中的记录与您从 MySQL 数据库中检索到的记录相匹配。如果匹配,请停止浏览提要并将比此更新的记录添加到数据库中。

    根据更新频率,这不会让您的应用在每个提要中长时间忙碌。

    另一方面,如果您想考虑现有记录中的编辑,您可以:

    • 在加载数据时使用流立即解析和异步处理数据。

    • 如果提要的大小不是很大,您可以将记录解析成一个数组,然后使用队列一个一个地处理它们。但是,如果您的提要相对较大,内存可能是一个问题。

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多