马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 夏夏子 于 2025-12-5 12:20 编辑
青龙面板是支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。
1、容器创建
部署参考的compose文件,修改主机端口、主机目录即可。如果不知道什么是主机端口和主机目录,可以看我关于compose的教程:compose文件说明。
- services:
- qinglong:
- image: 'whyour/qinglong:latest'
- container_name: qinglong
- restart: always
- network_mode: bridge
- ports:
- - "5700:5700"
- volumes:
- - ./data:/ql/data
- environment:
- QlBaseUrl: '/' # 部署路径非必须,以斜杠开头和结尾,比如 /test/
复制代码
2、初始化
1、在本地浏览器输入 ip:主机端口进行访问,点击开始安装
2、设置完管理员账号密码后可以点击提交
3、通知设置可以先跳过
4、点击去登录
5、输入账户密码点击登录
6、登录成功界面
3、使用
1、通知
1、 系统设置
可以点击系统设置下的通知设置,选择配置消息通知方式。这个一般是推送系统级的消息比如账号活动等,由面板自身主动触发推送。
2、 配置文件
点击配置文件菜单,配置config.sh文件里通知方式的参数。可以供 notify.py/sendNotify.js 调用推送单个脚本运行结果。
如果通知里不想带上每日一言,可以在notify.py/sendNotify.js 脚本里把HITOKOTO的值改成字符串false,即'false'。
2、依赖安装
点击依赖管理页面选择语言类别,比如python3,然后点击右上角的创建依赖按钮,在名称处填写依赖名称如requests来安装脚本所需的依赖。
比如py常用的依赖:beautifulsoup4和requests。
如果依赖拉取不下来,可以在设置里填写软件包镜像源或者设置代理。
- # Node 软件包镜像源
- https://registry.npmmirror.com
- # Python 软件包镜像源
- https://pypi.tuna.tsinghua.edu.cn/simple
- # Linux 软件包镜像源
- https://mirrors.aliyun.com/
复制代码
3、创建定时任务
点击定时任务菜单,点击右上角的创建任务。
- 名称:自定义
- 脚本:task后接脚本地址,比如:`task 1000qm.py`,如果脚本不在主目录,比如是在login文件夹下,则是`task login/1000qm.py`
- 定时规则:5/6位cron表达式。比如每天8点:`0 8 * * *`
其他task命令,其中:file_path是脚本地址:
- # 依次执行,如果设置了随机延迟,将随机延迟一定秒数
- task <file_path>
- # 依次执行,无论是否设置了随机延迟,均立即运行,前台会输出日,同时记录在日志文件中
- task <file_path> now
- # 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日,直接记录在日志文件中,且可指定账号执行
- task <file_path> conc <env_name> <account_number>(可选的)
- # 指定账号执行,无论是否设置了随机延迟,均立即运行
- task <file_path> desi <env_name> <account_number>
- # 设置任务超时时间
- task -m <max_time> <file_path>
- # 使用 -- 分割,-- 后面的参数会传给脚本,下面的例子,脚本就可接收到参数 -u whyour -p password
- task <file_path> -- -u whyour -p password
复制代码
4、随机延迟
对于一些签到定时任务一直在一个时间点运行会很容易被发现,因此可以对任务设置个随机的延迟时间。
点击配置文件,找到RandomDelay项,把值(单位秒)改成想延迟的时间即可,比如1h内随机:`RandomDelay="3600"`.
5、自定义通知通知内容包含\n
以py文件为例,打开notify.py,找到以下内容进行更改
- # 原始内容
- lambda v: v.replace("$title", title.replace("\n", "\\n")).replace(
- "$content", content.replace("\n", "\\n")
- ),
- # 更改后的内容
- # 取消 \n 转义
- lambda v: v.replace("$title", title).replace( "$content", content),
复制代码
6、环境变量
青龙可以在环境变量菜单点击右上角的创建变量按钮填写名称和值后创建环境变量。
在脚本里可以读取设置的环境变量。
以py为例获取环境变量的几种方法:
- import os
- <div>
- # 获取含关键词的环境变量列表
- oleEnv = QLAPI.getEnvs({ "searchValue": "TEST" })
- print(oleEnv)
- # 获取指定环境变量值
- oleEnv2 = os.getenv('TEST')
- print(oleEnv2)
- # 通过 ID 获取环境变量
- oleEnv3 = QLAPI.getEnvById({ "id": 5 })
- print(oleEnv3)
- # 更新现有环境变量
- newEnv = oleEnv3["data"]
- newEnv['value'] = '55'
- print(newEnv)
- QLAPI.updateEnv({ "env": newEnv })
- print(QLAPI.getEnvs({ "searchValue": "TEST" }))</div>
复制代码
nodejs:
- // 获取环境列表
- QLAPI.getEnvs({ searchValue: 'dddd' }).then((x) => {
- console.log('getEnvs', x);
- });
复制代码
全局变量 QLAPI 是内置 API 的入口,官方文档:https://qinglong.online/guide/user-guide/built-in-api。其中其他环境变量相关的方法有:
- getEnvs: 获取环境变量列表
- createEnv: 创建新环境变量
- updateEnv: 更新现有环境变量
- deleteEnvs: 删除指定环境变量
- moveEnv: 移动环境变量位置
- disableEnvs: 禁用指定环境变量
- enableEnvs: 启用指定环境变量
- updateEnvNames: 更新指定环境变量的名称
- getEnvById: 通过 ID 获取环境变量
- systemNotify: 发送系统通知
|