Analytics
/
Queue Utils
Utility library for queuing events
A simple tiny queue library in 352 bytes
.
import smartQueue from '@analytics/queue-utils'
// Queue options
const options = {
max: 10, // limit
interval: 3000, // 3s
throttle: true, // Ensure only max is processed at interval
onPause: () => {
console.log('queue paused')
},
onEmpty: (queue, type) => {
if (!queue.length) {
console.log('>>>>>>>> Queue empty! Halted processing')
} else {
console.log('Queue remaining', queue)
console.log('start with queue.resume()')
}
}
}
const queue = smartQueue((items, restOfQueue) => {
console.log('items to process', items)
console.log('rest of queue', rest)
}, options)
;[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].forEach((item) => {
// Push items to queue
queue.push(item)
})
// Get queue size
console.log(queue.size())
// Pause queue
queue.pause()
// Resume queue
queue.resume()
Prior art
Fork of saturated