Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
burst-queue
Advanced tools
A simple queue that takes functions and executes those functions on a specified interval. Optionally a maximum number of functions to execute per interval can be specified when creating a burst-queue.
Queue(period, [callsPerPeriod])
Returns a burst-queue that will execute passed-in functions every period
(milliseconds). The optional callsPerPeriod
value denotes a maximum number of functions to be executed at each interval.
var Queue = require('burst-queue');
// Call the oldest 20 functions every minute
var queue = new Queue(60*1000, 20);
add(fn) / add([fn1, fn2, ...])
Adds functions to the queue. The add
method takes either a single function or an array of functions. Returns the queue's internal id(s) of the passed in functions. The internal ids can be later used to remove
items from the queue. If an array of functions is passed to add
, an array of ids is returned in the same order as the functions that were passed in.
var hello = function() { console.log("hello") };
var comma = function() { console.log(",") };
var space = function() { console.log(" ") };
var is_it_me = function() { console.log("is it me") };
var youre_looking_for = function() { console.log("you're looking for") };
queue.add(hello);
queue.add([ comma, space, is_it_me, space, youre_looking_for ]);
//>hello, is it me you're looking for
clear()
Clears the queue of all functions.
var queue = new Queue(60*1000, 2);
queue.add([ hello, comma, comma, space );
// the first 2 functions are called instantly since we must first
// reach the calls per period limit before enqueueing functions
console.log(queue.enqueued());
//> 2
queue.clear();
console.log(queue.enqueued());
//> 0
enqueued()
Returns the current count of items in the queue.
remove(id)
Takes an id returned from an add
call and removes that function from the queue, if it is still in the queue. Returns a bool that designates whether the remove
call successfully found and removed the function from the queue. If a function no longer exists in the queue when remove
is called on its id, remove
returns false
.
var tryRemove = function(id) {
if (queue.remove(id)) {
console.log("success!");
} else {
console.log("fail!");
}
}
var helloId = queue.add(hello);
tryRemove(helloId);
//> success!
tryRemove(helloId);
//> fail!
counter
Returns the current value of the counter used for generating the queue's internal ids for functions. This value increments by one each time a function is added to the queue.
availableCalls
Only valid when callsPerPeriod
is defined. Returns the number of calls available in the current period. Any function added to the queue in when availableCalls
returns a value greater than 0 will be executed immediately.
FAQs
a queue that executes functions in predefined bursts
The npm package burst-queue receives a total of 4 weekly downloads. As such, burst-queue popularity was classified as not popular.
We found that burst-queue demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.