8. xxl-job 原理-- 调度中心任务执行或触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8. xxl-job 原理-- 调度中心任务执行或触发相关的知识,希望对你有一定的参考价值。

参考技术A 任务执行方式

在界面中,点击任务的执行,会触发一次任务,后台会调用JobTriggerPoolHelper.trigger() 任务。
该方法是 将任务提交给一个线程池,在线程池中调用XxlJobTrigger.trigger。
JobTriggerPoolHelper

JobTriggerPoolHelper
该类中区别快线程池 和慢线程池,
1分钟窗口期内任务耗时达500ms超过10次,该窗口期内判定为慢任务,慢任务自动降级进入"Slow"线程池,

XxlJobTrigger.trigger

后期调用executorBizImpl.run(triggerParam);

Linux crond任务调度

crond 任务调度

原理图

 

 

 

crontab 进行定时任务的设置,。
概述
  任务调度:是指系统在某个时间执行的特定的命令或程序。
  任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
  2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
基本语法
       crontab [选项]
常用选项

    -e     编辑crontab定时任务
    -l      查询crontab任务
    -r      删除当前用户所有的crontab任务

crond 任务调度
快速入门
  1、设置任务调度文件:/etc/crontab。
  2、设置个人任务调度。执行crontab –e命令。
  3、接着输入任务到调度文件   如:*/1 * * * * ls –l /etc/ > /tmp/to.txt。
  4、意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt命令。
  参数细节说明

crond 任务调度6+
参数细节说明
•特殊符号的说明

•5个占位符的说明

参数细节说明
•特定时间执行任务案例

 

案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate 文件中

    1、先编写一个文件  /home/mytask1.sh

           如: date >> /tmp/mydate

    2 、给mytask1.sh 一个可以执行权限

      chmod 744 /home/mytask1.sh

   3、cronyab -e

   4、 */1* * * *  /home/mytsk1.sh

   5、成功 
案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal 文件中

1、先编写一个文件/home/mytask2.sh

     date>>/tmp/mycal

    cal>>/tmp/mycal

  2、给mytask2.sh 一个可以执行的权限

    chmod 744 /home/mytask2.sh

   3、cronyab -e

   4、 */1* * * *  /home/mytsk2.sh

   5、成功 


案例3: 每天凌晨2:00 将mysql数据库testdb ,备份到文件中。

1、先编写一个文件/home/mytask3.sh

     /user/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak

  2、给mytask3.sh 一个可以执行的权限

    chmod 744 /home/mytask3.sh

   3、cronyab -e

   4、0 2* * * *  /home/mytsk3.sh

   5、成功 


crond 相关指令:
  1) conrtab –r:终止任务调度。

  2) crontab –l:列出当前有那些任务调度

  3) service crond restart [重启任务调度]

 

以上是关于8. xxl-job 原理-- 调度中心任务执行或触发的主要内容,如果未能解决你的问题,请参考以下文章

XXL-JOB分布式任务调度框架-源码分析-任务调度执行流程及实现原理

XXL-JOB 任务调度中心 后台任意命令执行漏洞

XXL-JOB 任务调度中心 后台任意命令执行漏洞

XXL-JOB(任务调度中心)-反弹getshell

分布式任务调度平台xxl-job的使用(java)

分布式任务调度平台XXL-JOB学习