From 970d7891d4492df3f80cdc9dffc8bb40d9964176 Mon Sep 17 00:00:00 2001 From: Menci Date: Sun, 31 Mar 2019 12:16:57 +0800 Subject: [PATCH] Fix polling judge task blocking the global redis connection for randering cache --- libs/judger.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/judger.js b/libs/judger.js index d4bd1ba..a047925 100644 --- a/libs/judger.js +++ b/libs/judger.js @@ -27,9 +27,10 @@ let judgeQueue; async function connect() { const JudgeState = syzoj.model('judge_state'); + const blockableRedisClient = syzoj.redis.duplicate(); judgeQueue = { redisZADD: util.promisify(syzoj.redis.zadd).bind(syzoj.redis), - redisBZPOPMAX: util.promisify(syzoj.redis.bzpopmax).bind(syzoj.redis), + redisBZPOPMAX: util.promisify(blockableRedisClient.bzpopmax).bind(blockableRedisClient), async push(data, priority) { return await this.redisZADD('judge', priority, JSON.stringify(data)); },