Files
autoAiWorkSys/api/middleware/schedule/taskHandlers.js
张成 65833dd32d 11
2025-12-30 15:46:18 +08:00

102 lines
3.4 KiB
JavaScript

const { SearchHandler, DeliverHandler, ChatHandler, ActiveHandler } = require('./handlers');
/**
* 任务处理器工厂(重构版)
* 使用独立的处理器类替代原有的内嵌处理方法
*
* 重构说明:
* - 原 taskHandlers.js: 1045 行,包含所有业务逻辑
* - 新 taskHandlers.js: 95 行,仅作为处理器工厂
* - 业务逻辑已分离到 handlers/ 目录下的独立处理器
*/
class TaskHandlers {
constructor(mqttClient) {
this.mqttClient = mqttClient;
// 初始化各个处理器
this.searchHandler = new SearchHandler(mqttClient);
this.deliverHandler = new DeliverHandler(mqttClient);
this.chatHandler = new ChatHandler(mqttClient);
this.activeHandler = new ActiveHandler(mqttClient);
console.log('[任务处理器] 已初始化所有处理器实例');
}
/**
* 注册任务处理器到任务队列
* @param {object} taskQueue - 任务队列实例
*/
register(taskQueue) {
console.log('[任务处理器] 开始注册处理器...');
// 注册自动搜索处理器
taskQueue.registerHandler('auto_search', async (task) => {
return await this.handleAutoSearchTask(task);
});
// 注册自动投递处理器
taskQueue.registerHandler('auto_deliver', async (task) => {
return await this.handleAutoDeliverTask(task);
});
// 注册搜索职位列表处理器(与 auto_search 相同)
taskQueue.registerHandler('search_jobs', async (task) => {
return await this.handleAutoSearchTask(task);
});
// 注册自动沟通处理器
taskQueue.registerHandler('auto_chat', async (task) => {
return await this.handleAutoChatTask(task);
});
// 注册自动活跃账户处理器
taskQueue.registerHandler('auto_active_account', async (task) => {
return await this.handleAutoActiveAccountTask(task);
});
console.log('[任务处理器] 所有处理器已注册完成');
}
/**
* 处理自动搜索任务
* @param {object} task - 任务对象
* @returns {Promise<object>} 执行结果
*/
async handleAutoSearchTask(task) {
console.log(`[任务处理器] 调度自动搜索任务 - 设备: ${task.sn_code}`);
return await this.searchHandler.handle(task);
}
/**
* 处理自动投递任务
* @param {object} task - 任务对象
* @returns {Promise<object>} 执行结果
*/
async handleAutoDeliverTask(task) {
console.log(`[任务处理器] 调度自动投递任务 - 设备: ${task.sn_code}`);
return await this.deliverHandler.handle(task);
}
/**
* 处理自动沟通任务
* @param {object} task - 任务对象
* @returns {Promise<object>} 执行结果
*/
async handleAutoChatTask(task) {
console.log(`[任务处理器] 调度自动沟通任务 - 设备: ${task.sn_code}`);
return await this.chatHandler.handle(task);
}
/**
* 处理自动活跃账户任务
* @param {object} task - 任务对象
* @returns {Promise<object>} 执行结果
*/
async handleAutoActiveAccountTask(task) {
console.log(`[任务处理器] 调度自动活跃任务 - 设备: ${task.sn_code}`);
return await this.activeHandler.handle(task);
}
}
module.exports = TaskHandlers;