reset_link.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //重置推广连接状态
  2. const config = require("../etc/config.json");
  3. const mysql = require('mysql2/promise');
  4. const taskdbConfig = config.isDebug?config.debug_task_mysql:config.release_task_mysql
  5. const redis_help = require('../src/use_redis');
  6. const CMD = {}
  7. const XLSX = require('xlsx');
  8. var productIds = []
  9. var total_num = 0
  10. function getProductIds(filePath) {
  11. try {
  12. // 读取 xlsx 文件
  13. const workbook = XLSX.readFile(filePath);
  14. // 获取第一个工作表
  15. const firstSheetName = workbook.SheetNames[0];
  16. const worksheet = workbook.Sheets[firstSheetName];
  17. // 将工作表转换为 JSON 数组
  18. const data = XLSX.utils.sheet_to_json(worksheet);
  19. // 提取 product_id 列的所有值
  20. const productIds = data.map(row => row.product_id);
  21. return productIds;
  22. } catch (error) {
  23. console.error('读取文件出错:', error);
  24. return [];
  25. }
  26. }
  27. async function processTask(){
  28. if(productIds.length<=0){
  29. return console.log("完成任务")
  30. }
  31. let product_id = productIds.pop()
  32. let connection = null
  33. try{
  34. product_id = product_id.replace(/'/g, '');
  35. product_id = `"${product_id}"`;
  36. connection = await mysql.createConnection({
  37. ...taskdbConfig,
  38. multipleStatements: true
  39. });
  40. 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 `
  41. console.log("sql:",sql)
  42. await connection.execute(
  43. sql,[Date.now()]
  44. );
  45. }catch(e){
  46. console.error("processTask error:",e)
  47. } finally{
  48. if(connection!=null){
  49. connection.end()
  50. }
  51. console.log(`完成任务书籍:${product_id} ,剩余任务共计:${productIds.length}条,一共有任务:${total_num}条`)
  52. global.setTimeout(processTask, 1000);
  53. }
  54. }
  55. CMD.init = async function(){
  56. redis_help.connect((results)=>{
  57. if(results){
  58. const filePath = './reset_link.xlsx';
  59. productIds = getProductIds(filePath);
  60. console.log("productIds:",productIds)
  61. total_num = productIds.length
  62. processTask();
  63. }
  64. })
  65. }
  66. CMD.init()