refactor redis multi

This commit is contained in:
HF 2022-04-08 12:06:57 +02:00
parent c9c377cdbb
commit 24e83d8f2f
2 changed files with 13 additions and 4 deletions

View File

@ -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;
}

View File

@ -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;