根据这个包装https://github.com/OptimalBits/bull#documentation
我的问题是:
公牛会自动使用多核CPU,因为node.js在单线程上运行。
如果是的话,在Bull中使用多核确实可以运行后台任务,例如大规模的mongodb-updates(更新我的user-profile-avatar将在req/res循环中运行,而在很多引用文档的更新中,例如友谊中收集应该在后台运行),这可能需要几分钟或几小时的时间,因此,直到网络的所有用户都看到新的化身为止,花费几分钟甚至几小时的时间用户甚至都不会注意到。或者,它们是用阻塞代码表示的,阻塞代码是像CPU繁重的任务一样阻塞Event-Loop的代码,而不是像数据库查询那样阻塞I/O操作的代码。
我将不胜感激。
最佳答案
Bull只是node.js的库,它并没有改变node.js在单个线程上运行的事实。因此,您不能指望Bull解决您的单线程问题,但是Bull可以帮助您解决这一问题。
我不理解您其余的问题(从谈论大量的mongodb查询开始)。
旁注:您通常希望避免在MongoDB中引用。 MongoDB查询通常非常繁琐和/或缓慢。相反,您想要对数据进行非规范化,即使这可能导致重复存储的数据。
关于node.js - node.js运行单线程时 “bull”是否利用多核,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47538191/