Coder Social home page Coder Social logo

Support put job with loop about fivebeans HOT 2 CLOSED

ceejbot avatar ceejbot commented on July 21, 2024
Support put job with loop

from fivebeans.

Comments (2)

ceejbot avatar ceejbot commented on July 21, 2024

You're creating three clients there, once per trip through the loop, which is probably not what you want. If you're looping through data that you want to do something asynchronous with, use a continuer function. I updated the emitjobs.js example to show this off, but here's a stripped down example:

var fivebeans = require('fivebeans');
var joblist = [ 'one', 'two', 'three', 'four', 'five' ];

var doneEmittingJobs = function()
{
    console.log('We reached our completion callback. Now closing down.');
    emitter.end();
    process.exit(0);
};

var continuer = function(err, jobid)
{
    console.log('emitted job id: ' + jobid);
    if (joblist.length === 0)
        return doneEmittingJobs();

    emitter.put(0, 0, 60, JSON.stringify(['testtube', joblist.shift()]), continuer);
};

var emitter = new fivebeans.client('localhost', 11300);
emitter.connect(function(err)
{
    emitter.use('testtube', function(err, tname)
    {
        console.log("using " + tname);
        emitter.put(0, 0, 60, JSON.stringify(['testtube', joblist.shift()]), continuer);
    });
});

First you define a continuer function that knows how to tell when you've looped through all your data and knows how to kick off processing on the next chunk of data. Then you invoke your processing on the first data item & pass the continuer as a callback. This is a general pattern you'll use often when looping through data in node. There's a pretty good explanation of this pattern in this article, with a more for-loop-y variation on it.

Or you could use a flow control module to help with loops. I often use async for this.

from fivebeans.

jspaper avatar jspaper commented on July 21, 2024

@ceejbot Thank you provide those information:)

from fivebeans.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.