This commit is contained in:
张成
2025-11-24 13:23:42 +08:00
commit 5d7444cd65
156 changed files with 50653 additions and 0 deletions

118
api/services/index.js Normal file
View File

@@ -0,0 +1,118 @@
/**
* 服务管理器
* 统一管理所有服务实例
*
* 注意:此文件主要用于统一导出服务,实际调度系统使用 middleware/schedule/
*/
const AIService = require('./ai_service');
const PlaAccountService = require('./pla_account_service');
// TaskScheduler 已废弃,实际使用 middleware/schedule/ 中的调度系统
// MQTTHandler 文件不存在,实际使用 middleware/mqtt/mqttManager.js
// JobService 已合并到 middleware/job/jobManager.js1
class ServiceManager {
constructor(config = {}) {
this.config = config;
this.services = {};
this.initialized = false;
this.logger = config.logger || console;
}
/**
* 初始化所有服务
*/
async initialize() {
if (this.initialized) {
return;
}
this.logger.info('初始化服务管理器...');
try {
// 初始化AI服务
if (this.config.ai?.enabled !== false) {
this.services.ai = AIService.getInstance(this.config.ai);
this.logger.info('✓ AI服务已初始化');
}
// 注意:任务调度器实际使用 middleware/schedule/ 中的 ScheduleManager
// 注意MQTT处理器实际使用 middleware/mqtt/mqttManager.js
this.initialized = true;
this.logger.info('服务管理器初始化完成');
} catch (error) {
this.logger.error('服务管理器初始化失败:', error);
throw error;
}
}
/**
* 获取AI服务
* @returns {AIService}
*/
getAI() {
return this.services.ai;
}
/**
* 检查服务健康状态
* @returns {Object}
*/
getHealthStatus() {
return {
initialized: this.initialized,
services: {
ai: !!this.services.ai
}
};
}
/**
* 关闭所有服务
*/
async shutdown() {
this.logger.info('关闭服务管理器...');
try {
this.initialized = false;
this.logger.info('服务管理器已关闭');
} catch (error) {
this.logger.error('关闭服务管理器失败:', error);
throw error;
}
}
}
// 导出单例
let instance = null;
module.exports = {
/**
* 获取服务管理器实例
* @param {Object} config - 配置选项
* @returns {ServiceManager}
*/
getInstance(config) {
if (!instance) {
instance = new ServiceManager(config);
}
return instance;
},
/**
* 创建新的服务管理器实例
* @param {Object} config - 配置选项
* @returns {ServiceManager}
*/
createInstance(config) {
return new ServiceManager(config);
},
// 导出各个服务类
AIService,
PlaAccountService
// TaskScheduler 已废弃
// MQTTHandler 文件不存在
// JobService 已合并到 middleware/job/jobManager.js
};