我正在构建一个使用RabbitMQ的Sails应用程序,它将Web请求中的某些任务委托(delegate)给工作程序 Node 。这几乎是https://devcenter.heroku.com/articles/background-jobs-queueinghttps://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/

10-13 05:27