Merge pull request #60 from overleaf/ho-pubsub-healthcheck

Ho pubsub healthcheck
This commit is contained in:
Henry Oswald 2019-07-08 13:32:52 +01:00 committed by GitHub
commit 6d4649c842

View file

@ -134,20 +134,18 @@ if Settings.forceDrainMsDelay?
if Settings.continualPubsubTraffic if Settings.continualPubsubTraffic
console.log "continualPubsubTraffic enabled" console.log "continualPubsubTraffic enabled"
redisClients = [redis.createClient(Settings.redis.documentupdater), redis.createClient(Settings.redis.realtime)] pubsubClient = redis.createClient(Settings.redis.pubsub)
clusterClient = redis.createClient(Settings.redis.websessions)
publishJob = (channel, callback)-> publishJob = (channel, callback)->
checker = new HealthCheckManager(channel) checker = new HealthCheckManager(channel)
logger.debug {channel:channel}, "sending pub to keep connection alive" logger.debug {channel:channel}, "sending pub to keep connection alive"
json = JSON.stringify({health_check:true, key: checker.id, date: new Date().toString()}) json = JSON.stringify({health_check:true, key: checker.id, date: new Date().toString()})
jobs = _.map redisClients, (rclient)-> pubsubClient.publish channel, json, (err)->
return (cb)-> if err?
rclient.publish channel, json, (err)-> logger.err {err, channel}, "error publishing pubsub traffic to redis"
if err? clusterClient.publish "cluster-continual-traffic", {keep: "alive"}, callback
logger.err {err, channel}, "error publishing pubsub traffic to redis"
return cb(err)
async.series jobs, callback
runPubSubTraffic = -> runPubSubTraffic = ->
async.map ["applied-ops", "editor-events"], publishJob, (err)-> async.map ["applied-ops", "editor-events"], publishJob, (err)->