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

35 天前
 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)

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