我写的循环,并增加了消息队列(Azure存储队列),像这样一个小的测试节点的应用程序:处理的消息队列和使用异步
var queueService = azure.createQueueService();
var queueName = 'taskqueue';
// other stuff like check if created
// loop called after queue is confirmed
for (i=0;i<1000;i++){
queueService.createMessage(queueName, "Hello world!", null, messageCreated);
}
// messageCreated does nothing at the moment, just logs to console
我试图重写到处理一百万个创建使用异步来控制并行运行的工作者函数的数量。这比任何事情都是一次学习练习。
https://github.com/caolan/async#queue
这是异步的队列的基本设置和我无所适从,以什么我需要改变我的一种。我不认为下面会工作:
var q = async.queue(function (task, callback) {
queueService.createMessage(queueName, task.msg, null, messageCreated);
callback();
}, 100);
// assign a callback. Called when all the queues have been processed
q.drain = function() {
console.log('all items have been processed');
}
// add some items to the queue
for(i=0;i<1000000;i++) {
q.push({msg: 'Hello World'}, function (err) {
console.log('finished processing foo');
});
console.log('pushing: ' + i);
}
我不完全掌握如何将它与异步一起拉。
quiickly skimming这看起来对我好吗? – Alfred
@Alfred,我将百万变成了500,进行测试。结果发生的是我看到“完成处理foo”打印到屏幕500次,然后从messageCreated(从azure放置消息的回调)第一个控制台日志。 – lucuma