定时任务管理之qinglong
定时任务,是在日常开发需求中总会遇到的,我们往往会有一些简单的脚本工作,希望能够每小时或每天执行一次。当这类需求变得多起来后,这些零散的任务脚本就会变得难以管理,尤其是它们可能由不同的脚本语言编写而成。这时,我们就需要一个集中化的定时任务管理平台,来进行统一管理。
◆ 简介
QingLong(青龙),是 whyour 在 Github 上开源的定时任务管理面板,仓库位于
https://github.com/whyour/qinglong,目前版本为 v2.11.2。
QingLong提供了强大的定时任务管理功能,支持 Python3,JavaScript,Shell,TypeScript 等多语言。QingLong的功能包括:
支持多种脚本语言(Python3,JavaScript,Shell,TypeScript)
支持在线管理脚本、环境变量、配置文件
支持在线查看任务日志
支持秒级任务设置
支持系统级通知
支持暗黑模式
支持手机端操作
◆ 使用
QingLong 推荐使用 Docker 或 Docker-Compose 部署。使用Docker部署:
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/scripts:/ql/scripts \
-p 5700:5700 \
--name qinglong \
--hostname qinglong \
--restart unless-stopped \
whyour/qinglong:latest
使用Docker-Compose部署:
mkdir qinglong
wget https://raw.githubusercontent.com/whyour/qinglong/master/docker-compose.yml # 启动
docker-compose up -d
# 停止
docker-compose down
QingLong提供了丰富的命令进行控制,包括:
# 更新并重启青龙
ql update
# 运行自定义脚本extra.sh
ql extra
# 添加单个脚本文件
ql raw <file_url>
# 添加单个仓库的指定脚本
ql repo <repo_url> <whitelist> <blacklist> <dependence> <branch>
# 删除旧日志
ql rmlog <days>
# 启动tg-bot
ql bot
# 检测青龙环境并修复
ql check
# 重置登录错误次数
ql resetlet
# 禁用两步登录
ql resettfa # 依次执行,如果设置了随机延迟,将随机延迟一定秒数
task <file_path>
# 依次执行,无论是否设置了随机延迟,均立即运行,前台会输出日,同时记录在日志文件中
task <file_path> now
# 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日,直接记录在日志文件中,且可指定账号执行
task <file_path> conc <env_name> <account_number>(可选的)
# 指定账号执行,无论是否设置了随机延迟,均立即运行
task <file_path> desi <env_name> <account_number>
命令的参数包括:
file_url: 脚本地址
repo_url: 仓库地址
whitelist: 拉取仓库时的白名单,即就是需要拉取的脚本的路径包含的字符串
blacklist: 拉取仓库时的黑名单,即就是需要拉取的脚本的路径不包含的字符串
dependence: 拉取仓库需要的依赖文件,会直接从仓库拷贝到scripts下的仓库目录,不受黑名单影响
branch: 拉取仓库的分支
days: 需要保留的日志的天数
file_path: 任务执行时的文件路径
env_name: 任务执行时需要并发或者指定时的环境变量名称
account_number: 任务执行时指定某个环境变量需要执行的账号序号
QingLong提供了GUI后台界面,能够十分方便可视化地管理任务的执行。
◆ 总结
QingLong提供了强大的定时任务管理功能,支持 Python3,JavaScript,Shell,TypeScript 等多语言,支持在线管理脚本和日志等。其功能丰富,能够满足大部分需求场景,值得一试。
定时任务管理之qinglong的更多相关文章
- Quartz 定时任务管理
前言 将项目中的所有定时任务都统一管理吧,使用 quartz 定时任务 设计思路 使用 quartz 的相关jar 包,懒得去升级了,我使用的是 quart 1.6 写一个定时任务管理类 用一张数据库 ...
- 基于PHP的crontab定时任务管理
BY JENNER · 2014年11月10日· 阅读次数:6 linux的crontab一直是server运维.业务开展的利器.但当定时任务增多时,管理和迁移都变得非常麻烦,并且easy出问题.以下 ...
- 定时任务管理中心(dubbo+spring)-我们到底能走多远系列47
我们到底能走多远系列47 扯淡: 又是一年新年时,不知道上一年你付出了多少,收获了多少呢?也许你正想着老板会发多少奖金,也许你正想着明年去哪家公司投靠. 这个时间点好好整理一下,思考总结一下,的确是个 ...
- 基于Spring4的定时任务管理
在项目中,有时会遇到定时任务的处理,下面介绍一下我的做法. 此做法基于Spring4,Spring框架搭建成功,另需引入quartz.jar,pom.xml文件中加入 <dependency&g ...
- 定时任务管理之python篇celery使用
一.为什么要用celery celery是一个简单.灵活.可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必须工具.他是一个专注于实时处理的任务队列,同时也支持任务调度. celery是异 ...
- Linux编译安装、压缩打包、定时任务管理
编译安装 压缩打包 定时任务管理 一.编译安装 使用源代码,编译打包软件 1.特点 1.可以定制软件 2.按需构建软件 2.编译安装 1.下载源代码包 wget https://nginx.org/d ...
- Crony 一个基于Go语言实现的分布式定时任务管理平台
crony - 分布式定时任务管理平台 1. 基本介绍 1.1 项目背景 项目中存在许多定时任务,很多代码写法都是采取见缝插针式的写法或者直接丢到task服务里面写,存在以下问题 服务多实例时执行定时 ...
- 使用FluentScheduler和IIS预加载在asp.net中实现定时任务管理
FluentScheduler介绍 github地址:https://github.com/fluentscheduler/FluentScheduler FluentScheduler是一个简单的任 ...
- Quartz简单实现定时任务管理(SSM+Quartz)
首先你得有一个用Maven搭好的SSM框架,数据库用的Mysql,这里只有关于Quartz的部分.其实有大神总结的很好了,但做完后总有些地方不一样,所以写这篇作为笔记.这里先把大神的写的分享给大家:h ...
- 用abp vNext快速开发Quartz.NET定时任务管理界面
今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发.大伙最好跟着一起敲一下代码,当然源码 ...
随机推荐
- compileSdkVersion, minSdkVersion 和 targetSdkVersion,傻傻分不清楚【转】
原文 https://blog.csdn.net/gaolh89/article/details/79809034 在Android Studio项目的app/build.gradle中,我们可以看到 ...
- DRBD - Distributed Replication Block Device
Ref https://computingforgeeks.com/install-and-configure-drbd-on-centos-rhel https://www.veritas.com/ ...
- 手脱upx
其实已经是大一下刚开始的事情了,补个档 手动脱壳の新年快乐 查壳,有壳,UPX X32dbg打开文件,查看初始断点 点击PUSHAD跟进,CTRL+*设置EIP,开始F8步过,寻找ESP寄存器第一次单 ...
- 基于RHEL 9 搭建 KVM 虚拟化环境
一.准备工作 1. 检查硬件虚拟化支持 KVM 要求处理器支持硬件虚拟化技术:Intel VT-x(虚拟化技术扩展)或 AMD-V(虚拟化技术扩展). 检查方法: 使用以下命令检查 CPU 是否支持虚 ...
- Docker基本操作(端口?网络模式?)(五)
一.端口暴露 Docker 容器更多情况下是用来运行 Web 应用的,所以要如何访问到容器中的 Web 服务呢?比如我们现在运行一个 nginx 容器服务: $ docker run --name w ...
- 非常非常好用的一款账户密码保存工具-KeePass
非常非常好用的一款账户密码保存工具 下载地址: https://sourceforge.net/projects/keepass/files/KeePass%202.x/2.55/KeePass- ...
- 使用 vite 配置目录别名
你是否被 ../ ../../ 这样的路径折磨的心力憔悴,如果你使用 vite 的话,不妨来试试 alias 命名目录吧. 安装 @types/node 来加载 path 模块 npm i @type ...
- style 标签写在body 前后的区别?
知识储备:了解浏览器渲染页面的流程 a)首先 , 解析(parse)html 标签 , 获取DOM 树 b)解析html 的同时 , 解析css , 获得样式规则 (style rules) CSS ...
- python使用协程完成批量模拟支付
import asyncio import sys from queue import Queue sys.path.append("../") # from tool.__ini ...
- shiro 框架基本讲解【转载】
shiro 框架基本讲解[转载] 什么是权限管理: 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而 ...