我正在构建一个使用RabbitMQ的Sails应用程序,它将Web请求中的某些任务委托(delegate)给工作程序 Node 。这几乎是https://devcenter.heroku.com/articles/background-jobs-queueing和https://github.com/heroku-examples/node-articles-nlp中描述的模式。
虽然我可以在worker Node 中执行sails.lift(),但似乎最好跳过http端点(express)和一些繁琐的任务(下载下位/前端依赖项,减少,将Web资源复制到.tmp, ...)。
有什么办法可以做到这一点?
谢谢!
编辑
我的工作人员需要帆,因此我可以使用在帆中定义和公开的吃水线ORM和公共(public)服务。
最佳答案
如果要在没有Web服务器和其他与Web相关的组件的情况下使用Sails ORM,则可以使用Sails Hooks配置最小的应用程序
我写了一篇有关如何获得background tasks working with SailsJS and Kue的完整博客文章,但这是主要的摘录部分:
require('sails').load({
hooks: {
blueprints: false,
controllers: false,
cors: false,
csrf: false,
grunt: false,
http: false,
i18n: false,
logger: false,
//orm: leave default hook
policies: false,
pubsub: false,
request: false,
responses: false,
//services: leave default hook,
session: false,
sockets: false,
views: false
}
}, function(err, app){
//You can access all your SailsJS Models and Services here
User.findOne(1).then(function(user){
console.log(user)
})
})
关于node.js - 没有http端点的Sails.js工作程序 Node ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27371111/