0.1.4 • Published 10 years ago

limitedQueue v0.1.4

Weekly downloads
3
License
UNLICENSED
Repository
github
Last release
10 years ago

limitedQueue

An npm package which has a queue and a load balancing queue system.

Installation

 $ npm install limitedQueue

Basic Usage

    const q = require('limitedQueue');
    let limited = new q.LimitedQueue(5);
    for (var i = 0; i < 10; i ++) {
        limited.enqueue(i);
    }
    limited.size();
    => 5
    limited.toArray();
    => [ 5, 6, 7, 8, 9 ]
    limited.dequeue();
    => 5
    

Another Simple Data Structure Module?

No.

LimitedQueue Class:
  • Fits data to a specified number of bytes
  • Built-in Event System
  • Optimized for storage using a simple linked List
  • Automatic Dequeing
AutoQueue Class:
  • Limited number of items
  • Automatically dequeues when limit is hit, using callback on each item

AutoQueueBalancer:

  • A load balancer for an asynchronous function
  • When an item is enqueued, it is pushed to the asynchronous function
  • Uses a Min-Heap to prioritize which queue to delegate the job to
  • Allows for simple usage of calling a lot of asynchronous functions which cannot be run on the same object

More Usage Info

LimitedQueue

    const q = require('limitedQueue');
    let limited = new q.LimitedQueue(5);
    let enqueueHook = limited.on('enqueue', () => {console.log('ok')});
    for (var i = 0; i < 10; i ++) {
        limited.enqueue(i);
        => logs OK 10 times
    };
    limited.off('enqueue', enqueueHook);
    //Enqueueing will no longer console log.
    limited.size();
    => 5
    limited.toArray();
    => [ 5, 6, 7, 8, 9 ]
    limited.dequeue();
    => 5
    limited.squelch(100); //Bytes of Storage space not including space of object
    limited.dequeueInterval(100, console.log);
    //Will log an item from the queue every 100 ms and remove it from the queue

AutoQueue

    const q = require('limitedQueue');
    let arr = [];
    let auto = new q.AutoQueue(3, arr.push);
    auto.changeLimit(5);
    //New limit of 5 items
    auto.enqueue(1, 2, 3, 4);
    auto.dequeueAll(function Callback(item, done) => {
        setTimeout(() => {
            arr.push(item);
            if (item !== 3) {
                done();
            } else {
                done(true);
            }
        }, 1000);
    });
    //After approx. 3000 seconds, the array will have [ 1, 2, 3 ], and autoQueue will
    //have 4.
    auto.onLimit(/* callback function */);
    //Sets the default callback to use when dequeueAll is called.
0.1.4

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago