云任务是一套定时任务处理程序,用户通过与前端交互添加需要执行的任务到指定的任务包中,并设定任务包的激活状态与定时启动时间(可设定是否只运行一次或每天都运行)。除了用户手动投递的任务包外,系统会在第一次启动时与每天00:00
时自动分发当天需要执行的任务。
任务执行所用的脚本可以是Lua
Python
Javascript
这三种语言编写的代码,可以使用语言自带的各种工具函数和此程序导出的API接口来进行编程,任务执行的结果与执行过程中的各种日志与报错日志均可在前端控制台中看到,可作为脚本执行问题的参考数据。
若是任务的开发者还可以在帮助中心发布帮助文档,以更好地帮助用户使用。
如果你是管理员则可以批量导入任务脚本,例如从指定的仓库拉取,或者可以上传zip
文件进行导入。仓库文件夹需要遵守以下格式才能进行导入。
- 根目录或任意子目录必须包含一个
tasks.json
文件来指定仓库的各种脚本信息。 tasks.json
的详细格式介绍。
我的脚本仓库: scripts
项目相关文章:Taskcloud基本重构完成与后续填坑记录计划贴
此项目分为三个子项目
前端
taskcloud_web后端
taskcloud_backend核心
taskcloud_core
核心除了可以提供服务外还有一个用于本地开发调试的程序local
,可以使用--help
命令查看其用法。
其中后端与核心使用的通信协议为TCP,详细请看核心协议。
整个项目的架构图
数据库的结构图
前端
taskcloud_web\src\config\network.js
第132行设置全局后端接口地址
taskcloud_web\src\config\crypto.js
设置加解密密钥
后端
taskcloud_backend\src\main\resources\application.yml
设置全局配置
核心
taskcloud_core\src\common\global.cc
设置服务配置
前端
- 确保在子项目根目录打开命令行终端
- 执行
yarn run build
编译后的文件会在子项目根目录的dist
文件夹中
后端
- 确保在子项目根目录打开命令行终端
- 执行
./mvnw clean package -D maven.test.skip=true -D file.encoding=UTF-8
编译后的文件会在子项目根目录的target
文件夹中
核心
- 确保在子项目根目录打开命令行终端
- 执行
git submodule init
- 执行
git submodule update
- 执行
cmake -S . -B build
- 执行
cmake --build build --config Release -j 38
,其中-j 38
的38为同时编译线程数,应替换为编译平台的CPU的超线程数+2
编译后的文件会在子项目根目录的build/Release
文件夹中
- 根据数据库结构在MySQL中建立数据库。
- 运行核心服务程序。
- 运行后端服务程序。如果你是以
java -jar
启动服务端则需要添加-Dfile.encoding=UTF-8
参数,防止出现乱码问题。 - 部署前端网站。
普通用户
- 在任务包管理中心中创建自己的任务包。
- 在可用任务中心中挑选想要使用的任务,并添加到自己的任意一个任务包中。
- 查看通行证配置中心是否存在需要配置的选项。
- 通行证配置完毕后设定任务包参数即可,开关自己需要的功能、定时时间等。
开发者
- 基础功能与普通用户一样。
- 可发布属于自己的任务。
- 可发布属于自己的帮助文档。
管理员
- 在功能上来说基础功能与普通用户一样,但并没有给管理员UI上的操作,仅作为审核员。
- 在任务审核中心中审核开发者发布的任务,审核通过后才会在任务中心中上架。
- 在帮助文档审核中心中审核开发者发布的帮助文档,审核通过后才会在帮助中上架。