Tag: queue

避免与nodejs的竞争条件

我正在使用nodeJS 6.3.0和aws DynamoDB编写一个应用程序。 dynamodb拥有从10个不同的function(10种不同的统计量度)中被添加到dynamodb的统计信息。 间隔时间设置为10秒,这意味着每10秒钟,10次调用我的function正在添加所有的相关信息。 putItem函数: function putItem(tableName,itemData,callback) { var params = { TableName: tableName, Item: itemData }; docClient.put(params, function(err, data) { if (err) { logger.error(params,"putItem failed in dynamodb"); callback(err,null); } else { callback(null,data); } }); 现在…我创build了一个队列。 var queue = require('./dynamoDbQueue').queue; 它实现了一个固定大小的简单队列,我使用http://www.bennadel.com/blog/2308-creating-a-fixed-length-queue-in-javascript-using-arrays.htm 。 这个想法是,如果有networking问题..让我们说一分钟。 我希望所有的事件都被推送到队列中,当问题解决后,发送队列信息给dynamodb并释放队列。 所以我将我的原始function修改为以下代码: function putItem(tableName,itemData,callback) { var params = { TableName: tableName, […]

Firebase在一个队列上排队多个规格都会被执行,或者被错误的执行

我有一个Firebase队列和两个规格,在同一个队列和客户端上,我将队列中的start状态作为只读read_write_start进行推送,无论是我的规格是默认执行还是错误的规格执行,即“ read_start“规范被执行 客户端 : var readWriteTokenData = {}; readWriteTokenData ["_start"] = "read_write_start"; $firebaseArray(QueueRef.child('tasks')).$add(readWriteTokenData); 服务器端 : var queueRef = new Firebase('https://<INSTANCE>.firebaseio.com/queue'); var specs: { "read_write_token": { "_start_state" : "read_write_start", "in_progress_state": "read_write_in_progress", "finished_state": "read_write_finished", "error_state": "read_write_error" }, "read_token": { "_start_state" : "read_start", "in_progress_state": "read_in_progress", "finished_state": "read_finished", "error_state": "read_error" } } queueRef.child('specs').update(specs); var option1 = { 'specId' : […]