From eae6e8b079a165dcc69756cb6ffb56d954b512b0 Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Thu, 8 Aug 2013 11:00:50 +0300 Subject: [PATCH] Work around possible issue in node-memcached where 'get' sometimes returns incorrect values when under heavy load. getMulti works fine. --- db.coffee | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/db.coffee b/db.coffee index efe52cc..5d8f938 100644 --- a/db.coffee +++ b/db.coffee @@ -46,9 +46,14 @@ db.open( (err, db) -> 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? - tasksCollection.findOne({_id : mongodb.ObjectID(String(taskId))}, (err, task) -> + tasksCollection.findOne({_id : mongodb.ObjectID(tid)}, (err, task) -> callback(task) ) else