V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
spritecn
V2EX  ›  Java

给 xxl-job 写了个猴子脚本,用来计算执行日志里的执行时间,主要便于一眼看出哪个任务执行时间久需要优化

  •  
  •   spritecn · 8 天前 · 992 次点击

    效果(x:居然不能帖图),我没图床..直接上代码

    // ==UserScript==
    // @name        xxl-job 执行时间计算
    // @namespace   Violentmonkey Scripts
    // @match       http://*/joblog*
    // @grant       none
    // @version     1.0
    // @author      -
    // @description 2024/11/12 17:25:38
    // ==/UserScript==
    // 获取表格中的所有行
    function execute(){
      var rows = document.querySelectorAll('#joblog_list tbody tr');
      if(!rows){
        return
      }
      // 遍历每一行
      rows.forEach(function(row) {
          // 获取调度时间和执行时间的元素
          var scheduleTimeElement = row.querySelector('td:nth-child(2)');
          var executeTimeElement = row.querySelector('td:nth-child(5)');
          if(!executeTimeElement.innerText){
            return
          }
          if(executeTimeElement.innerText.indexOf("|") != -1){
            return
          }
          // 获取调度时间和执行时间的文本内容,并将其转换为 Date 对象
          var scheduleTime = new Date(scheduleTimeElement.innerText);
          var executeTime = new Date(executeTimeElement.innerText);
    
          // 计算时间差(单位:毫秒)
          var timeDifference = executeTime - scheduleTime;
          console.log(timeDifference);
    
          var seconds = parseInt(timeDifference / 1000);
    
          // 将时间差显示在执行时间后面
          var addText = seconds<60?' || ' + seconds + '秒' : ' || ' + '<span style="color: red">' + seconds + '</span>' + '秒'
          executeTimeElement.innerHTML += addText;
      })
    }
    setInterval(execute,800)
    
    
    5 条回复    2024-11-13 13:10:41 +08:00
    spritecn
        1
    spritecn  
    OP
       8 天前
    腾讯云 AI 代码助手写的,改了改
    miaotaizi
        2
    miaotaizi  
       8 天前
    我的理解, 这种任务调度工具执行的任务是不是应该是简单任务?
    耗时的任务用这种工具去做还靠谱吗?
    spritecn
        3
    spritecn  
    OP
       8 天前
    @miaotaizi 据了解,很多大一点的公司,夜间跑几个小时的 job 都在用 xxl,很多 job 刚开始写的时候是毫秒级的,上线半年就几分钟了
    zeonluang
        4
    zeonluang  
       8 天前
    有些任务, xxl job 只作为触发, 实际异步或父子执行, 日志没法监控
    wolfie
        5
    wolfie  
       8 天前
    应该用 APM ,用 xxl job 触发做筛选。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3062 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:54 · PVG 20:54 · LAX 04:54 · JFK 07:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.