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

1 天前
 spritecn

效果(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)

796 次点击
所在节点    Java
5 条回复
spritecn
1 天前
腾讯云 AI 代码助手写的,改了改
miaotaizi
1 天前
我的理解, 这种任务调度工具执行的任务是不是应该是简单任务?
耗时的任务用这种工具去做还靠谱吗?
spritecn
1 天前
@miaotaizi 据了解,很多大一点的公司,夜间跑几个小时的 job 都在用 xxl,很多 job 刚开始写的时候是毫秒级的,上线半年就几分钟了
zeonluang
1 天前
有些任务, xxl job 只作为触发, 实际异步或父子执行, 日志没法监控
wolfie
1 天前
应该用 APM ,用 xxl job 触发做筛选。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX