Work around possible issue in node-memcached where 'get' sometimes returns incorrect values when under heavy load. getMulti works fine.

This commit is contained in:
Zaid Abdulla committed 2013-08-08 11:00:50 +03:00
1 parent 28f63e8c96
commit eae6e8b079
1 file changed
+7 -2
+7 -2
View File
@@ -46,9 +46,14 @@ db.open( (err, db) ->
getTask = (taskId, callback) -> getTask = (taskId, callback) ->
memcached.get(taskId, (err, task) -> # TODO using getMulti instead of get because of possible bug
# in node-memcached where it sometimes returns incorrect values
# when under heavy load. getMulti works fine.
tid = String(taskId)
memcached.getMulti([tid], (err, data) ->
task = data[tid]
if not task? if not task?
tasksCollection.findOne({_id : mongodb.ObjectID(String(taskId))}, (err, task) -> tasksCollection.findOne({_id : mongodb.ObjectID(tid)}, (err, task) ->
callback(task) callback(task)
) )
else else