【发布时间】:2017-08-01 21:40:03
【问题描述】:
这是我的问题,我有一个正在运行的工作人员收集一些数据,然后将其保存到模式中。在这些模式中,我发布了保存时发生的中间件功能。问题是我的工作人员没有等待后中间件完成工作,然后再循环并再次保存到相同的模式。随着我的工作人员继续运行,它会大大减慢速度,因为它会在完成之前一遍又一遍地排队这些功能。那些 post 中间件函数也保存到其他也执行自己的 post 函数的模式。所以正如我所知,当我正在处理数十万个正在保存的对象时,它开始真正放慢速度。
我的代码是什么样子的示例:
工人
tranFunc = (stuff, Object) ->
newObject = Object
newObject = new Object newObject
newObject.save (err) ->
Save 现在跳转到发生更多事情的架构中,但我的工作人员在完成之前循环并继续进行
架构
ObjectSchema.post("save", function() {
DOING STUFF
我读到我可以使用 next() 之类的东西作为对工作人员的回调,但我尝试使用它没有成功。
【问题讨论】:
-
您可以尝试发布一个“最小可运行”示例吗?我认为您需要做的是确保您的所有异步代码都接受返回回调,但我不知道您的示例中的内容是什么,所以我不知道您需要在哪里添加回调。
-
嗯,这就是我不知道如何进行回叫的问题,所以工作人员知道我的架构已经完成......我的架构是一个单独的地方......它没有嵌套在工作人员中以防万一你怎么想...
-
我还是试着给出答案,看看是否有意义。
标签: javascript node.js mongodb callback database