/taskcloud

A simple task schedule program

Primary LanguageShellMIT LicenseMIT

Taskcloud

介绍

云任务是一套定时任务处理程序,用户通过与前端交互添加需要执行的任务到指定的任务包中,并设定任务包的激活状态与定时启动时间(可设定是否只运行一次或每天都运行)。除了用户手动投递的任务包外,系统会在第一次启动时与每天00:00时自动分发当天需要执行的任务。

任务执行所用的脚本可以是Lua Python Javascript这三种语言编写的代码,可以使用语言自带的各种工具函数和此程序导出的API接口来进行编程,任务执行的结果与执行过程中的各种日志与报错日志均可在前端控制台中看到,可作为脚本执行问题的参考数据。

若是任务的开发者还可以在帮助中心发布帮助文档,以更好地帮助用户使用。

如果你是管理员则可以批量导入任务脚本,例如从指定的仓库拉取,或者可以上传zip文件进行导入。仓库文件夹需要遵守以下格式才能进行导入。

  • 根目录或任意子目录必须包含一个tasks.json文件来指定仓库的各种脚本信息。
  • tasks.json详细格式介绍

我的脚本仓库: scripts

项目相关文章:Taskcloud基本重构完成与后续填坑记录计划贴

架构

此项目分为三个子项目

核心除了可以提供服务外还有一个用于本地开发调试的程序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设置服务配置

编译

前端

  1. 确保在子项目根目录打开命令行终端
  2. 执行yarn run build

编译后的文件会在子项目根目录的dist文件夹中

后端

  1. 确保在子项目根目录打开命令行终端
  2. 执行./mvnw clean package -D maven.test.skip=true -D file.encoding=UTF-8

编译后的文件会在子项目根目录的target文件夹中

核心

  1. 确保在子项目根目录打开命令行终端
  2. 执行git submodule init
  3. 执行git submodule update
  4. 执行cmake -S . -B build
  5. 执行cmake --build build --config Release -j 38,其中-j 38的38为同时编译线程数,应替换为编译平台的CPU的超线程数+2

编译后的文件会在子项目根目录的build/Release文件夹中

部署

  1. 根据数据库结构在MySQL中建立数据库。
  2. 运行核心服务程序。
  3. 运行后端服务程序。如果你是以java -jar启动服务端则需要添加-Dfile.encoding=UTF-8参数,防止出现乱码问题。
  4. 部署前端网站。

使用

普通用户

  1. 在任务包管理中心中创建自己的任务包。
  2. 在可用任务中心中挑选想要使用的任务,并添加到自己的任意一个任务包中。
  3. 查看通行证配置中心是否存在需要配置的选项。
  4. 通行证配置完毕后设定任务包参数即可,开关自己需要的功能、定时时间等。

开发者

  1. 基础功能与普通用户一样。
  2. 可发布属于自己的任务。
  3. 可发布属于自己的帮助文档。

管理员

  1. 在功能上来说基础功能与普通用户一样,但并没有给管理员UI上的操作,仅作为审核员。
  2. 在任务审核中心中审核开发者发布的任务,审核通过后才会在任务中心中上架。
  3. 在帮助文档审核中心中审核开发者发布的帮助文档,审核通过后才会在帮助中上架。

预览图

预览图01 预览图02 预览图03 预览图04 预览图05 预览图06 预览图07 预览图08 预览图09