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} 执行结果 */ async handleAutoSearchTask(task) { console.log(`[任务处理器] 调度自动搜索任务 - 设备: ${task.sn_code}`); return await this.searchHandler.handle(task); } /** * 处理自动投递任务 * @param {object} task - 任务对象 * @returns {Promise} 执行结果 */ async handleAutoDeliverTask(task) { console.log(`[任务处理器] 调度自动投递任务 - 设备: ${task.sn_code}`); return await this.deliverHandler.handle(task); } /** * 处理自动沟通任务 * @param {object} task - 任务对象 * @returns {Promise} 执行结果 */ async handleAutoChatTask(task) { console.log(`[任务处理器] 调度自动沟通任务 - 设备: ${task.sn_code}`); return await this.chatHandler.handle(task); } /** * 处理自动活跃账户任务 * @param {object} task - 任务对象 * @returns {Promise} 执行结果 */ async handleAutoActiveAccountTask(task) { console.log(`[任务处理器] 调度自动活跃任务 - 设备: ${task.sn_code}`); return await this.activeHandler.handle(task); } } module.exports = TaskHandlers;