• 定时任务管理之qinglong X


    定时任务,是在日常开发需求中总会遇到的,我们往往会有一些简单的脚本工作,希望能够每小时或每天执行一次。当这类需求变得多起来后,这些零散的任务脚本就会变得难以管理,尤其是它们可能由不同的脚本语言编写而成。这时,我们就需要一个集中化的定时任务管理平台,来进行统一管理。

    图片

    ◆ 简介

    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 等多语言,支持在线管理脚本和日志等。其功能丰富,能够满足大部分需求场景,值得一试。

     

     

  • 相关阅读:
    单例模式中的懒汉式以及线程安全性问题
    单例模式中的饿汉模式
    自我管理的8个好习惯
    从java字节码角度看线程安全性问题
    工作上的建议
    从线程的优先级看饥饿问题
    多线程存在哪些风险
    DirectX SDK (June 2010)安装错误S1023,解决方法
    Microsoft DirectX SDK 2010 版本下载
    如果程序集是从 Web 上下载的,即使它存储于本地计算机,Windows 也会将其标记为 Web 文件,http://go.microsoft.com/fwlink/?LinkId=179545
  • 原文地址:https://www.cnblogs.com/xingxia/p/crontab_qinglong.html
Copyright © 2020-2023  润新知