mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
simplify redis continual traffic
we can't send double health check events to same redis, it causes health check duplicate errors. Commit just sends health check data to pub sub pair and then sends non health check traffic to cluster to keep the connection open
This commit is contained in:
parent
1038c5cd0d
commit
520857cf7a
1 changed files with 6 additions and 8 deletions
|
@ -134,20 +134,18 @@ if Settings.forceDrainMsDelay?
|
|||
if Settings.continualPubsubTraffic
|
||||
console.log "continualPubsubTraffic enabled"
|
||||
|
||||
redisClients = [redis.createClient(Settings.redis.documentupdater), redis.createClient(Settings.redis.pubsub)]
|
||||
pubsubClient = redis.createClient(Settings.redis.pubsub)
|
||||
clusterClient = redis.createClient(Settings.redis.websessions)
|
||||
|
||||
publishJob = (channel, callback)->
|
||||
checker = new HealthCheckManager(channel)
|
||||
logger.debug {channel:channel}, "sending pub to keep connection alive"
|
||||
json = JSON.stringify({health_check:true, key: checker.id, date: new Date().toString()})
|
||||
jobs = _.map redisClients, (checkRclient)->
|
||||
return (cb)->
|
||||
checkRclient.publish channel, json, (err)->
|
||||
if err?
|
||||
logger.err {err, channel}, "error publishing pubsub traffic to redis"
|
||||
return cb(err)
|
||||
pubsubClient.publish channel, json, (err)->
|
||||
if err?
|
||||
logger.err {err, channel}, "error publishing pubsub traffic to redis"
|
||||
clusterClient.publish "cluster-continual-traffic", {keep: "alive"}, callback
|
||||
|
||||
async.series jobs, callback
|
||||
|
||||
runPubSubTraffic = ->
|
||||
async.map ["applied-ops", "editor-events"], publishJob, (err)->
|
||||
|
|
Loading…
Reference in a new issue