Flush redis after configuration changes that could affect cache integrity.
This commit is contained in:
1 parent
d68b9d40ea
commit
d5dc7b36df
1 file changed
+30
-1
+30
-1
@@ -27,6 +27,29 @@ presetsCollection = null
|
|||||||
objectsCollection = null
|
objectsCollection = null
|
||||||
|
|
||||||
|
|
||||||
|
# Only flush redis DB if aliases or custom commands config has changed
|
||||||
|
flushRedis = (callback) ->
|
||||||
|
redisClient.get('config_hash', (err, res) ->
|
||||||
|
return callback(err) if err
|
||||||
|
|
||||||
|
hash = require('crypto')
|
||||||
|
.createHash('md5')
|
||||||
|
.update(JSON.stringify(config.PARAMETERS))
|
||||||
|
.update(JSON.stringify(config.CUSTOM_COMMANDS))
|
||||||
|
.digest('hex')
|
||||||
|
|
||||||
|
if res == hash
|
||||||
|
return callback()
|
||||||
|
|
||||||
|
redisClient.flushdb((err) ->
|
||||||
|
return callback(err) if err
|
||||||
|
redisClient.set('config_hash', hash, (err, res) ->
|
||||||
|
return callback(err)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
connect = (callback) ->
|
connect = (callback) ->
|
||||||
callbackCounter = 6
|
callbackCounter = 6
|
||||||
mongodb.MongoClient.connect(config.MONGODB_CONNECTION_URL, {db:{w:1},server:{autoReconnect:true}}, (err, db) ->
|
mongodb.MongoClient.connect(config.MONGODB_CONNECTION_URL, {db:{w:1},server:{autoReconnect:true}}, (err, db) ->
|
||||||
@@ -72,9 +95,15 @@ connect = (callback) ->
|
|||||||
|
|
||||||
exports.redisClient = redisClient = redis.createClient(config.REDIS_PORT, config.REDIS_HOST)
|
exports.redisClient = redisClient = redis.createClient(config.REDIS_PORT, config.REDIS_HOST)
|
||||||
redisClient.select(config.REDIS_DB, (err) ->
|
redisClient.select(config.REDIS_DB, (err) ->
|
||||||
if --callbackCounter == 0 or err
|
if err
|
||||||
callbackCounter = 0
|
callbackCounter = 0
|
||||||
return callback(err)
|
return callback(err)
|
||||||
|
|
||||||
|
flushRedis((err) ->
|
||||||
|
if --callbackCounter == 0 or err
|
||||||
|
callbackCounter = 0
|
||||||
|
return callback(err)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user