feat: integrate RedisNode management into Project and Query services; enhance RedisNodeService with optimal node selection and connection options; update vm.constants to include RedisPlugin

This commit is contained in:
lborv
2025-10-09 19:54:08 +03:00
parent c3189bb2df
commit 174dbbcdba
9 changed files with 97 additions and 12 deletions

View File

@ -3,6 +3,7 @@ import { DatabasePlugin } from "./plugins/database.plugin";
import { Query } from "src/query/entities/query.entity";
import { QueryPlugin } from "./plugins/query.plugin";
import { AxiosPlugin } from "./plugins/axios.plugin";
import { RedisPlugin } from "./plugins/redis.plugin";
export const registeredPlugins = {
db: async (service: QueryExecuterService, query: Query) => {
@ -18,6 +19,17 @@ export const registeredPlugins = {
return DatabasePlugin.init("db", databaseConnection);
},
redis: async (service: QueryExecuterService, query: Query) => {
const redisConnection = await service.redisNodeService.getConnectionOptions(
query.project.id
);
if (!redisConnection) {
throw new Error("Redis connection not found");
}
return RedisPlugin.init("redis", redisConnection, query.project.id);
},
axios: async () => {
return AxiosPlugin.init("axios");
},