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:
1 parent
28f63e8c96
commit
eae6e8b079
1 file changed
+7
-2
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user