我正在构建一个具有这种结构的作业队列(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%)。因此,我的服务器无法在这种情况下提供新作业。
有人能建议我更有效地使用这个查询吗?
提前致谢:)