Optimized new device detection

This commit is contained in:
Zaid Abdulla committed 2012-12-25 11:18:54 +03:00
1 parent 89a114434a
commit 813bd836f5
1 file changed
+24 -13
+24 -13
View File
@@ -70,8 +70,27 @@ updateDevice = (deviceId, actions, callback) ->
updates["#{path}_timestamp"] = now updates["#{path}_timestamp"] = now
if Object.keys(updates).length > 0 if Object.keys(updates).length > 0
devicesCollection.update({'_id' : deviceId}, {'$set' : updates}, {upsert: true, safe: true}, (err) -> devicesCollection.update({'_id' : deviceId}, {'$set' : updates}, {safe: true}, (err, count) ->
callback(err) if callback? if (err)
callback(err) if callback?
return
if count == 0
util.log("#{deviceId}: new device detected")
updates['_id'] = deviceId
devicesCollection.save(updates, {safe: true}, (err) ->
if err?
callback(err) if callback?
return
task = {device : deviceId, name : 'init', timestamp : mongo.Timestamp()}
tasksCollection.save(task, (err) ->
util.log("#{deviceId}: Added init task #{task._id}")
callback(err) if callback?
)
)
else
callback() if callback?
) )
else else
callback() if callback? callback() if callback?
@@ -189,18 +208,10 @@ else
cookies.DeviceId = deviceId = common.getDeviceId(reqParams.deviceId) cookies.DeviceId = deviceId = common.getDeviceId(reqParams.deviceId)
if config.DEBUG if config.DEBUG
util.log("#{deviceId}: inform (#{reqParams.eventCodes}); retry count #{reqParams.retryCount}") util.log("#{deviceId}: inform (#{reqParams.eventCodes}); retry count #{reqParams.retryCount}")
devicesCollection.count({'_id' : deviceId}, (err, count) ->
if not count
util.log("#{deviceId}: new device detected")
task = {device : deviceId, name : 'init', timestamp : mongo.Timestamp()}
tasksCollection.save(task, (err) ->
util.log("#{deviceId}: Added init task #{task._id}")
)
updateDevice(deviceId, {'inform' : true, 'parameterValues' : reqParams.informParameterValues}, (err) -> updateDevice(deviceId, {'inform' : true, 'parameterValues' : reqParams.informParameterValues}, (err) ->
res = tr069.response(reqParams.sessionId, resParams, cookies) res = tr069.response(reqParams.sessionId, resParams, cookies)
writeResponse response, res writeResponse response, res
)
) )
return return