当前位置:  开发笔记 > 编程语言 > 正文

Node.js工作者/后台进程

如何解决《Node.js工作者/后台进程》经验,为你挑选了2个好方法。

如何在node.js中创建和使用后台作业?

我遇到过两个库(node-resque和node-worker),但想知道是否有更多的东西使用.



1> Alfred..:

我对此做了一些研究,我会这样做.

建立

beanstalkd

    安装beanstalkd.另一个消息队列,这个支持DELAYED PUTS.如果你从源代码编译它会变得有点困难,因为它依赖于libevent(比如memcached).但话说回来,我认为你不必从源代码编译它,因为有很多二进制包可用.例如,在Ubuntu上,您可以通过发出命令来安装beanstalkd:

    sudo apt-get install beanstalkd

节点豆茎的客户端

    安装beanstalkd客户端库.我找到的最好的是node-beanstalk-client.因为在beanstalkd客户端库列表中没有/未提及此库(然后我可以再次向列表中添加条目,因此我将添加此库).我更喜欢这个库而不是其他库的原因是:

      Npm包:我喜欢使用npm包来安装客户端库.其他人没有.

      主动开发:我更喜欢后期/更多提交的库.

因此,要安装它,在安装了npm(写入方式)之后,您只需发出以下命令:

npm install beanstalk_client

consumer.js

var client = require('beanstalk_client').Client;

client.connect('127.0.0.1:11300', function(err, conn) {
    var reserve = function() {
        conn.reserve(function(err, job_id, job_json) {
            console.log('got job: ' + job_id);
            console.log('got job data: ' + job_json);
            console.log('module name is ' + JSON.parse(job_json).data.name);
            conn.destroy(job_id, function(err) {
                console.log('destroyed job');
                reserve();
            });
        });
    }

    reserve();
});

首先启动消费者:

node consumer.js 

下一步开始producer.js.五秒钟(延迟我指定)你执行后producer.js,consumer.js将处理该邮件.

producer.js

var client = require('beanstalk_client').Client;
client.connect('127.0.0.1:11300', function(err, conn) {
    var job_data = {"data": {"name": "node-beanstalk-client"}};
    var priority = 0;
    var delay = 5;
    var timeToRun = 1;
    conn.put(priority, delay, timeToRun, JSON.stringify(job_data), function(err, job_id) {
        console.log('put job: ' + job_id);
        process.exit();
    });
});

开始发行:

node producer.js



2> webjay..:

我正在使用Kue.

Kue是由redis支持的node.js的功能丰富的优先级作业队列.Kue的一个关键特性是其干净的用户界面,用于查看和管理排队,活动,失败和已完成的作业.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有