102 lines
3.4 KiB
JavaScript
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;
|