一、介绍:
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 (注意这里的端口以你系统提示为准)
打开后是一个初始化系统的页面
我们还可以配置相关的消息提醒,支持钉钉、企业微信、邮件等形式的提醒。
成功设置之后,这就是我们的一个页面。
三、如何使用:
1.在平台编写脚本(脚本管理-》添加脚本-》编写脚本-》去定时任务执行脚本)
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.查看执行日志