一、介绍:

1.调度平台能够定时 自动调用我们的脚本或程序,如每周、每天、每隔几小时等;

2.jenkins也可以算一种调度平台 但不是特别好,为了统一化管理、调度还是用专门的任务调度平台比较好

为什么需要调度平台:

1,每个服务器各个服务下的任务管理混乱,生命周期无法统一协调管理

2,定时任务运行异常告警难以统一对接

3.随着时间增长,当定时任务达到几百上千的时候,定时任务就非常难以管理,线上跑了多个定时任务,每个定时任务什么时候运行,属于哪个应用和哪个开发负责等等问题变得很难解决。

4.某一部分需要手动执行,只需选择对应任务执行即可

常用的Cron表达式:

0 * * * * ? 每1分钟触发一次

*/5 * * * *  每5分钟触发一次

*/15 * * * *  每15分钟触发一次

0 0 * * * ? 每天每1小时触发一次
0 0 10 * * ? 每天10点触发一次
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 30 9 1 * ? 每月1号上午9点半
0 15 10 15 * ? 每月15日上午10:15触发
*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0 0 1 * ? 每月1号凌晨执行一次

备注:

下面主要来介绍5k star调度平台

 

 

二、搭建5k star调度平台:

功能:

•支持多种脚本语言(python3、javaScript、shell、typescript)•支持在线管理脚本、环境变量、配置文件•支持在线查看任务日志•支持秒级任务设置•支持系统级通知•支持暗黑模式•支持手机端操作

安装方式1:

推荐大家使用docker进行安装,没有安装docker的朋友,先去安装docker环境

安装好了docker之后,拉取镜像:

docker pull whyour/qinglong:latest

把镜像拉下来后,运行镜像:

docker run -dit \
  -v $PWD/ql/config:/ql/config \
  -v $PWD/ql/log:/ql/log \
  -v $PWD/ql/db:/ql/db \
  -v $PWD/ql/repo:/ql/repo \
  -v $PWD/ql/raw:/ql/raw \
  -v $PWD/ql/data/scripts:/ql/data/scripts \
  -v $PWD/ql/scripts:/ql/scripts \
  -p 5700:5700 \
  --name qinglong \
  --hostname qinglong \
  --restart unless-stopped \
  whyour/qinglong:latest

 

解释:-dit后台交互终端运行,-v挂载目录到宿主机($PWD表示当前路径),-p表示映射端口,--name表示镜像名称

 

安装方式二:docker-compose 部署

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
mkdir qinglong
wget https://raw.githubusercontent.com/whyour/qinglong/master/docker-compose.yml
 
# 启动
docker-compose up -d
# 停止
docker-compose down

 

安装成功后,我们可以打开http://localhost:5700 (注意这里的端口以你系统提示为准)

打开后是一个初始化系统的页面

调度模型 平台架构 调度平台作用_docker

 

 我们还可以配置相关的消息提醒,支持钉钉、企业微信、邮件等形式的提醒。

调度模型 平台架构 调度平台作用_docker_02

 

 

 成功设置之后,这就是我们的一个页面。

调度模型 平台架构 调度平台作用_docker_03

 

 

 

 

 

 三、如何使用:

1.在平台编写脚本(脚本管理-》添加脚本-》编写脚本-》去定时任务执行脚本)

调度模型 平台架构 调度平台作用_定时任务_04

 

 

 

2.执行linux下的脚本

  运行容器的时候需要挂载对应目录  -v $PWD/ql/data/scripts:/ql/data/scripts \ 

  把脚本xxx.shell放在宿主机的ql/data/scripts,执行sh ./xxx.shell

  把脚本xxx.shell放在宿主机的ql/data/scripts/chenwei1,执行sh chenwei1/xxx.shell

  

 3.查看执行日志

调度模型 平台架构 调度平台作用_docker_05