//重置推广连接状态 const config = require("../etc/config.json"); const mysql = require('mysql2/promise'); const taskdbConfig = config.isDebug?config.debug_task_mysql:config.release_task_mysql const redis_help = require('../src/use_redis'); const CMD = {} const XLSX = require('xlsx'); var productIds = [] var total_num = 0 function getProductIds(filePath) { try { // 读取 xlsx 文件 const workbook = XLSX.readFile(filePath); // 获取第一个工作表 const firstSheetName = workbook.SheetNames[0]; const worksheet = workbook.Sheets[firstSheetName]; // 将工作表转换为 JSON 数组 const data = XLSX.utils.sheet_to_json(worksheet); // 提取 product_id 列的所有值 const productIds = data.map(row => row.product_id); return productIds; } catch (error) { console.error('读取文件出错:', error); return []; } } async function processTask(){ if(productIds.length<=0){ return console.log("完成任务") } let product_id = productIds.pop() let connection = null try{ product_id = product_id.replace(/'/g, ''); product_id = `"${product_id}"`; connection = await mysql.createConnection({ ...taskdbConfig, multipleStatements: true }); let sql = ` update video_applet_product set create_at = FROM_UNIXTIME(?/1000) , status = 0 , wait_status = 0 where product_id = ${product_id} AND status = 1 ` console.log("sql:",sql) await connection.execute( sql,[Date.now()] ); }catch(e){ console.error("processTask error:",e) } finally{ if(connection!=null){ connection.end() } console.log(`完成任务书籍:${product_id} ,剩余任务共计:${productIds.length}条,一共有任务:${total_num}条`) global.setTimeout(processTask, 1000); } } CMD.init = async function(){ redis_help.connect((results)=>{ if(results){ const filePath = './reset_link.xlsx'; productIds = getProductIds(filePath); console.log("productIds:",productIds) total_num = productIds.length processTask(); } }) } CMD.init()