multi-lock-queue
Version:
optimally parallelize tasks that lock on potentially intersecting sets of ids
13 lines (10 loc) • 364 B
JavaScript
const { createLockingQueue } = require('../')
const q = createLockingQueue()
const wait = millis =>
new Promise(resolve => {
setTimeout(resolve, millis)
})
const waitAndPrint = (millis, msg) => wait(millis).then(() => console.log(msg))
q.enqueue(() => waitAndPrint(100, 'a'))
q.enqueue(() => waitAndPrint(50, 'b'))
q.enqueue(() => waitAndPrint(20, 'c'))