This commit is contained in:
2025-06-21 11:09:58 +08:00
parent 8891b196ba
commit a150cbc533
11 changed files with 332 additions and 129 deletions

View File

@@ -1,5 +1,5 @@
import { App } from '@kevisual/router';
import { useContextKey } from '@kevisual/use-config/context';
import { useContextKey } from '@kevisual/context';
const init = () => {
return new App();

View File

@@ -1,15 +1,16 @@
import { Redis } from 'ioredis';
import { config } from './config.ts';
import { useContextKey } from '@kevisual/use-config/context';
import { useContextKey } from '@kevisual/context';
type initRedisOpts = {
onConnect?: () => void; // 连接成功的回调函数
onError?: (msg?: any) => void; // 连接断开的回调函数
const redisConfig = {
host: config.REDIS_HOST || 'localhost',
port: parseInt(config.REDIS_PORT || '6379'),
password: config.REDIS_PASSWORD,
};
const initRedis = (config?: any, options?: initRedisOpts) => {
const redis = new Redis({
host: config?.REDIS_HOST || 'localhost', // Redis 服务器的主机名或 IP 地址
port: config?.REDIS_PORT || 6379, // Redis 服务器的端口号
export const createRedisClient = (options = {}) => {
const redisClient = new Redis({
host: 'localhost', // Redis 服务器的主机名或 IP 地址
port: 6379, // Redis 服务器的端口号
// password: 'your_password', // Redis 的密码 (如果有)
db: 0, // 要使用的 Redis 数据库索引 (0-15)
keyPrefix: '', // key 前缀
@@ -18,27 +19,20 @@ const initRedis = (config?: any, options?: initRedisOpts) => {
return Math.min(times * 50, 2000); // 每次重试时延迟增加
},
maxRetriesPerRequest: null, // 允许请求重试的次数 (如果需要无限次重试)
...config, // 其他配置项
...redisConfig,
...options,
});
// 监听连接事件
redis.on('connect', () => {
if (options?.onConnect) {
options.onConnect();
console.log('Redis 连接成功');
}
redisClient.on('connect', () => {
console.log('Redis client connected successfully');
});
redis.on('error', (err) => {
console.error('Redis 连接错误', err);
if (options?.onError) {
options.onError(err);
}
redisClient.on('error', (err) => {
console.error('Redis client error:', err);
});
return redis;
return redisClient;
};
// 配置 Redis 连接
export const redis = useContextKey('redis', () => initRedis(config));
export const redis = useContextKey('redis', () => createRedisClient());
// 初始化 Redis 客户端
export const redisPublisher = new Redis(); // 用于发布消息
export const redisSubscriber = new Redis(); // 用于订阅消息
// export const redisPublisher = createRedisClient(); // 用于发布消息
// export const redisSubscriber = createRedisClient(); // 用于订阅消息

View File

@@ -1,6 +1,6 @@
import { Sequelize } from 'sequelize';
import { config } from './config.ts';
import { useContextKey } from '@kevisual/use-config/context';
import { useContextKey } from '@kevisual/context';
export type PostgresConfig = {
postgres: {

View File

@@ -1,4 +1,4 @@
import { ProviderManager, SiliconFlowProvider } from '@kevisual/ai-center';
import { ProviderManager, SiliconFlowProvider } from '@kevisual/ai';
import dotenv from 'dotenv';
import util from 'node:util';
dotenv.config();