From da60461d811cc69bba2c3d068b7bee420f3d3b6a Mon Sep 17 00:00:00 2001 From: Apher Date: Thu, 16 Jul 2026 21:11:54 +0000 Subject: [PATCH] Use mtf-module-redis as submodule --- .gitmodules | 3 +++ src/models/index.js | 28 +--------------------------- src/modules/redis | 1 + src/server.js | 6 +++--- 4 files changed, 8 insertions(+), 30 deletions(-) create mode 100644 .gitmodules create mode 160000 src/modules/redis diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..865507c --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/modules/redis"] + path = src/modules/redis + url = https://gitea.spilum.net/Spilum.Net/mtf-module-redis diff --git a/src/models/index.js b/src/models/index.js index bb2c876..a94ec3c 100644 --- a/src/models/index.js +++ b/src/models/index.js @@ -28,33 +28,7 @@ db.sequelize = sequelize; db.intent = require("./intent.model")(sequelize, Sequelize); -// Redis Connection -const Redis = require('redis'); -const redis = {}; - -redis.client = Redis.createClient({ - url: `redis://default@${redisConfig.REDIS_HOST}:${redisConfig.REDIS_PORT}` -}); - -redis.ensureGroup = async (stream, group) => { - await redis.client.connect().catch(console.error); - - try { - await redis.client.xGroupCreate(stream, group, "0", {MKSTREAM: true}); - - console.log(`Created consumer group: ${group} (${stream})`); - } catch (err) { - if (err.message.includes('BUSYGROUP')) { - console.log(`Consumer group already exists: ${group} (${stream})`); - } else { - console.error(err); - } - } - await redis.client.quit(); -} - module.exports = { - db, - redis + db }; diff --git a/src/modules/redis b/src/modules/redis new file mode 160000 index 0000000..e41a75e --- /dev/null +++ b/src/modules/redis @@ -0,0 +1 @@ +Subproject commit e41a75e7436a059ab963c5db7b62ca524cacc4e5 diff --git a/src/server.js b/src/server.js index 0f09731..138c209 100644 --- a/src/server.js +++ b/src/server.js @@ -7,10 +7,11 @@ const {env, pipeline} = require("@xenova/transformers"); const models = require("./models"); const db = models.db; -const redis = models.redis; const {sequelize, Sequelize} = db; const Intent = db.intent; +const {redis} = require('./modules/redis'); + async function getIntents() { try { const intents = await Intent.findAll(); @@ -116,8 +117,6 @@ async function handleIntent(streamKey, msg) { } async function processor(group, consumer, streamKey) { - await redis.client.connect().catch(console.error); - while (true) { const res = await redis.client.xReadGroup( group, @@ -154,6 +153,7 @@ const main = async () => { await initModel(); + await redis.connect(); await redis.ensureGroup("transcripts", 'nlp'); await redis.ensureGroup("commands", 'nlp');