【发布时间】:2016-02-07 03:21:02
【问题描述】:
我有几个运行 mongoDB 的树莓派来收集本地数据。我需要将此数据同步到 parse.com。我已经有从 mongo 读取并写入 parse.com 的代码(在 node.js 中)。
到目前为止,我每分钟都通过 cronjob 运行脚本。对于每个被同步的元素,脚本都会在 mongo 上写入一个标记为sync2Parse = true。
问题是有时同步需要超过 1 分钟,因此同步脚本的下一次执行在旧脚本停止之前开始。这将意味着每个同步任务的 CPU 更少,从而延迟同步作业......以死循环结束。
任务很明确:尽快从mongoDB获取数据到parse.com。最好的方法应该是什么?我不需要代码来做这件事,只需要关于如何进行的战略建议。
我尝试使用mongo-watch,但显然它只适用于设置了复制的 mongoDB 数据库。
有什么想法吗?谢谢。
【问题讨论】:
-
代替 cron 作业使用超时。在同步开始之前花费时间,并将其与同步完成后的时间进行比较。如果再次同步超过一分钟,如果没有设置超时,则剩余时间为一分钟。因此,如果同步需要 20 秒,请将超时设置为 40 秒。
标签: node.js mongodb synchronization