From 24e83d8f2f19c5c7880d5a96e62b2bae9d9096b7 Mon Sep 17 00:00:00 2001 From: HF Date: Fri, 8 Apr 2022 12:06:57 +0200 Subject: [PATCH] refactor redis multi --- src/data/models/RedisCanvas.js | 10 ++++++---- src/data/redis.js | 7 +++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/data/models/RedisCanvas.js b/src/data/models/RedisCanvas.js index 21986a0..c56cd8f 100644 --- a/src/data/models/RedisCanvas.js +++ b/src/data/models/RedisCanvas.js @@ -12,7 +12,7 @@ import { // eslint-disable-next-line import/no-unresolved import canvases from './canvases.json'; -import redis, { redisV3 } from '../redis'; +import redis from '../redis'; const UINT_SIZE = 'u8'; @@ -92,6 +92,7 @@ class RedisCanvas { } multi = null; + static enqueuePixel( canvasId, color, @@ -100,9 +101,9 @@ class RedisCanvas { offset, ) { if (!RedisCanvas.multi) { - RedisCanvas.multi = redisV3.multi(); + RedisCanvas.multi = redis.multi(); } - RedisCanvas.multi.v4.addCommand( + RedisCanvas.multi.addCommand( [ 'BITFIELD', `ch:${canvasId}:${i}:${j}`, @@ -119,7 +120,8 @@ class RedisCanvas { if (RedisCanvas.multi) { const { multi } = RedisCanvas; RedisCanvas.multi = null; - return multi.execAsPipeline(); + // true for execAsPipeline + return multi.exec(true); } return null; } diff --git a/src/data/redis.js b/src/data/redis.js index a79c10e..6b8a7db 100644 --- a/src/data/redis.js +++ b/src/data/redis.js @@ -27,4 +27,11 @@ export const connect = async () => { await redis.connect(); }; +/* + * multi is not in .v4 in legacyMode, + * might be fixed in the future + * https://github.com/redis/node-redis/blob/329885b4ae3167d0092e856095b726e2adf89c97/packages/client/lib/client/multi-command.ts + */ +redis.v4.multi = () => redis.multi().v4; + export default redis.v4;