sql >> Databasteknik >  >> NoSQL >> Redis

Vänta på återuppringning av asynkronfunktion i den senaste stream.on('data')-händelsen

Du kan lösa detta problem med asynkronbibliotek. Du kan använda mönstret nedan för alla strömmar.

var AsyncLib = require('async');

var worker = function (payload, cb) {
    //do something with payload and call callback
    return cb();
};

var concurrency = 5;
var streamQueue = AsyncLib.queue(worker, concurrency);

var stream = //some readable stream;

stream.on('data', function(data) {
    //no need to pause and resume
    var payload = '//some payload';
    streamQueue.push(payload);
})
.on('end', function() {
    //register drain event on end and callback
    streamQueue.drain = function () {
        callback();
    };
});



  1. Ta bort database.yml när du använder Mongoid i Rails 3.2

  2. Få alla fältnamn i en mongodb-samling?

  3. Hur vet man om sidekiq är ansluten till redis-servern?

  4. Redis:För att ställa in timeout för ett nyckelvärdespar i Set