如何正确设置议程工作的并发性

这是一个例子工作:

const Agenda = require('agenda') const agenda = new Agenda({db: {address: process.env.MONGO_URL}}) agenda.define('example-job', (job) => { console.log('took a job -', job.attrs._id) }) 

所以,现在,让我们说,我排队了11个议程这样的工作:

 const times = require('lodash/times') times(11, () => agenda.now('example-job')) 

现在,如果我查看数据库,我可以看到有11个工作排队,准备就绪(就像我期望的那样)。

所以现在我开始一个工作stream程:

 agenda.on('ready', () => { require('./jobs/example_job') agenda.start() }) 

当这个过程开始时,我看到5个作业被从队列中取出,这是有道理的,因为defaultConcurrency是5 https://github.com/agenda/agenda#defaultconcurrencynumber

到目前为止这样好,但是如果我开始另一个工作进程(与上面的工作相同),我预计还会有5个工作从队列中拉出,所以总共有10个工作(每个进程5个),剩下一个队列。

然而,当第二名工人开始工作时,并没有再拖下任何工作,只是空着。

我预计defaultConcurrency每个进程在任何给定时刻都可以运行的作业数量,但是看起来这是一个适用于所有议程进程中总计随时作业数量的设置。

我在这里丢失了什么,或者指定每个进程可以运行多less个作业的正确方法是什么,没有限制可以跨所有进程运行的作业数量。