mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-08 00:29:04 +02: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:
@@ -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)->
|
||||
|
||||
Reference in New Issue
Block a user