import { Router } from 'express' import redis from '../redis/index.js' import initQueue from '../redis/initQueue.js' const router = Router() // 添加API路由来处理文件上传 router.post('/all', async (req, res) => { // 立即返回响应,避免平台超时 res.status(200).json({ success: true, message: 'Received' }); // // console.log('callback',req.body) processCallbackData(req.body).catch(error => { console.error('处理回调数据时出错:', error); }); }) /** * 异步处理回调数据 */ async function processCallbackData(body) { let remoteTaskId, eventData remoteTaskId = body.taskId eventData = body.eventData // 通过remoteTaskId查询对应的taskId const taskId = await redis.get(`${initQueue.callback}:${remoteTaskId}`); if (taskId) { // 将eventData存储到redis的数据里,使用taskId作为键 const taskKey = `${initQueue.prefix}:task:${taskId}`; await redis.hSet(taskKey, 'resultData', eventData); // 增加值到回调结果队列列表 await redis.rPush(initQueue.callback, taskId); await initQueue.addCallbackRQtasks(1); console.log('taskKey:', taskKey); console.log('数据已保存到 Redis:', eventData); } else { console.error('未找到对应的taskId,remoteTaskId:', remoteTaskId); // 可以考虑将未找到的remoteTaskId记录下来,以便后续分析 await redis.set(`callback:missing:${remoteTaskId}`, JSON.stringify(body), { EX: 86400 }); // 保存24小时 } } export default router