Nitrogenous Polymorphic Molecule

    vow-queue

    0.4.3 • Public • Published

    vow-queue NPM version Build Status

    vow-queue is a module for task queue with weights and priorities

    Installation

    Module can be installed using npm:

    npm install vow-queue
    

    or bower:

    bower install vow-queue
    

    Usage

    var Queue = require('vow-queue'),
        queue = new Queue({ weightLimit : 10 });
        
    queue.enqueue(function() { // simple function
        return 2 * 2;
    });
     
    queue.enqueue(function() { // function returns a promise
        // do job
        return promise;
    });
     
    queue.enqueue( // task with custom priority and weight
        function() {
            // do job
        },
        {
            priority : 3, // this task will be started before the previous two
            weight   : 5
        });
        
    queue.start(); // starts tasks processing
     
    queue.enqueue(function() { }); // and enqueue yet another task

    API

    Creating queue

    new Queue([params])

    • params.weightLimit=100 limit of summary tasks weight which can be processed concurrently

    Methods of queue

    Promise enqueue(taskFn, [taskParams])

    Enqueue given task in queue

    • taskFn task function which can return either a promise or a value
    • taskParams.weight=1 weight of given task
    • taskParams.priority=1 priority of given task

    Returns promise which will be resolved when given task is done

    void start()

    Starts processing of tasks in queue

    void stop()

    Stops processing of tasks in queue

    Boolean isStarted()

    Returns whether processing is started

    void setParams(params)

    Sets queue params

    • params.weightLimit=100 limit of summary tasks weight which can be processed concurrently

    Object getStats()

    Returns statistics about queue

    Keywords

    none

    Install

    npm i vow-queue

    DownloadsWeekly Downloads

    94,316

    Version

    0.4.3

    License

    MIT

    Last publish

    Collaborators

    • dfilatov