Domanda

Come faccio a creare posti di lavoro e l'uso di fondo in node.js?

ho incontrato due librerie (nodo-Resque e il nodo-lavoratore), ma vorrei sapere se c'è qualcosa di più utilizzato.

È stato utile?

Soluzione

Ho fatto qualche ricerca su questo e vorrei farlo in questo modo.

Setup

beanstalkd

  1. beanstalkd . Un'altra coda di messaggi, ma PUTS RITARDATA . Se si compila dai sorgenti che sta per essere un po 'più difficile perché dipende da libevent (come memcached ). Ma poi di nuovo, io non credo che si deve compilare dai sorgenti, perché ci sono un sacco di pacchetti binari disponibile. Per esempio su Ubuntu è possibile installare beanstalkd con il comando:

    sudo apt-get install beanstalkd

node-pianta di fagioli-client

  1. Installare una libreria client beanstalkd. Il migliore che ho trovato è stato nodo-pianta di fagioli-client . A causa della lista libreria client beanstalkd questa libreria non è / non è stato menzionato (Poi di nuovo posso aggiungere elementi alla lista, quindi mi aggiungere questo uno). Le ragioni che preferisco questa libreria negli altri sono:

    1. pacchetto Npm : mi piaceva usare un pacchetto da installare NPM libreria client. Gli altri non avevano alcuna.
    2. Sviluppo attivo :. Preferisco le librerie che hanno seguito / più commit

Quindi, per installarlo, dopo aver installato NPM ( il modo di scrittura ) si sarebbe solo emettere il seguente comando:

npm install beanstalk_client

Codice

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();
});

Per prima avviare il consumatore:

node consumer.js 

prossimo avvio producer.js. Cinque secondi (ritardo ho specificato) dopo aver eseguito producer.js, consumer.js elaborerà il messaggio.

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();
    });
});

per avviare solo problema:

node producer.js

Altri suggerimenti

Kue .

Kue è una coda di lavoro ricco di priorità funzionalità per node.js garantiti da Redis. Una caratteristica fondamentale di Kue è la sua interfaccia utente pulita per la visualizzazione e la gestione di coda, attivo, falliti, e lavori completati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top