Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Czekaj na wywołanie zwrotne funkcji asynchronicznej w ostatnim zdarzeniu stream.on('data')

Możesz rozwiązać ten problem za pomocą biblioteki asynchronicznej. Możesz użyć poniższego wzoru dla dowolnych strumieni.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Różnica między StackExchange.Redis i ServiceStack.Redis

  2. czy istnieje sposób na uzyskanie adresu IP klienta w redis?

  3. Sugestie dotyczące prostego rozwiązania do rozproszonego buforowania .NET

  4. Redis — wygasłe indeksy nie są usuwane

  5. Redis szuka env redis zmiennej url nie jestem pewien, gdzie umieścić zmienną env zły URI (nie jest URI?):(URI::InvalidURIError)