mongodb:建立一个工作队列

时间:2014-08-05 09:34:42

标签: node.js mongodb job-queue

我正在构建一个具有这种结构的作业队列(Nodejs + Mongodb):

{
    "_id" : ObjectId("53e09abd23bbaeea776598e1"),
    "createDate" : ISODate("2014-08-05T08:50:05.643Z"),
    "status" : "new",
    ......
}

我在我的系统中定义了4种状态:new,waiting,working,failed,done

要求: 我需要在作业队列中选择最近的作业,状态为" new"。

目前,我正在使用

这样做
jobQueue.findAndModify(
        {
          status: 'new',
        },
        {date: 1},
        {$set: { ... } },
        {remove: false},
        function (err, job) {......

当作业文件较少时,它可以正常工作。但是有文件没有的情况。升至50k。然后锁定期(使用mongostat)超过100%(有时达到200%)。因此,我的服务器无法在这种情况下提供新作业。

有人能建议我更有效地使用这个查询吗?

提前致谢:)

0 个答案:

没有答案