Tag: 优先级队列

节点SQS优先级队列

我需要用node.js和SQS实现一个优先级队列。 这是我第一次与SQS所以我想听听你的意见。 我有三个工作重点:p0,p1和p2,p0是最高的。 p2是最频繁的,之后是p0,最后是p1。 在数字上,我可以粗略地说是这样的: p2 ~= 5p0 p0 >> p1 他们都是独立的工作,所以执行这些工作的顺序并不重要。 我想出了两种可能的解决scheme(这些只是草图,并不真正运行)。 两者都是共同的 var _ = require('lodash'), Promise = require('bluebird'), sqs = require('some-sqs-module'); … module.exports.getJob = function() { return getJobByQueuePriority(0); // or… return getJobByJobPriority(0); } 解决scheme1 使用3个队列,每个优先级一个。 根据各自的优先级从每个队列中抽样1份工作 var Queues = [p0url, p1url, p2url], currentQueueIndex = 0; function getJobByQueuePriority(priority) { return new Promise(function(resolve, reject) […]