记录以防忘记。
前言
本文仅供学习探讨之用,如果侵犯了您的权益请联系我删除。
项目地址
本文只做简要介绍,如果有兴趣还请移步主项目阅读README.md
。
主项目
https://github.com/Bzi-Han/taskcloud
子项目
前端 vue3
https://github.com/Bzi-Han/taskcloud_web
后端 java
https://github.com/Bzi-Han/taskcloud_backend
核心 c++
https://github.com/Bzi-Han/taskcloud_core
基本介绍
云任务是一套定时任务处理程序,用户通过与前端交互添加需要执行的任务到指定的任务包中,并设定任务包的激活状态与定时启动时间(可设定是否只运行一次或每天都运行)。除了用户手动投递的任务包外,系统会在第一次启动时与每天00:00
时自动分发当天需要执行的任务。
任务执行所用的脚本可以是Lua
Python
Javascript
这三种语言编写的代码,可以使用语言自带的各种工具函数和此程序导出的API接口来进行编程,任务执行的结果与执行过程中的各种日志与报错日志均可在前端控制台中看到,可作为脚本执行问题的参考数据。
若是任务的开发者还可以在帮助中心发布帮助文档,以更好地帮助用户使用。
架构
整个项目的架构图
数据库的结构图
基于Docker构建核心项目的编译环境
因为核心项目使用了CMake
来帮助构建,所以理论上可以跨Windows
与Linux
进行编译(没有试过Mac
),但不能保证一定不会遇到问题,因此这里仅作为一个备选解决手段。
也可以作为构建基于docker-debian
clang-14
编译环境的参考吧。
- 确保
docker
服务运行中。 - 执行
docker run -d --name taskcloud_builder -it debian /bin/bash
创建基本容器。如果需要 ssh 服务的话可再添加-p 外部端口:内部端口
进行端口映射,后续再安装 ssh 服务即可,但我这里就不需要了。 - 执行
docker exec -it taskcloud_builder /bin/bash
进入容器命令行。 - 执行
cp /etc/apt/sources.list /etc/apt/sources.list.bak
备份 apt 源。 - 执行
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
替换 apt 源为中科大源,可自行设置其他源。 - 执行
sed -i 's|security.debian.org/debian-security|mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
替换 apt-security 源为中科大源,可自行设置其他源。 - 执行
apt-get update
更新源。 - 执行
apt-get install wget -y
安装 wget 工具。 - 执行
apt install lsb-release wget software-properties-common -y
安装 lsb-release 为后续安装提供支持。 - 执行
apt install gnupg -y
安装 gnupg 为后续安装提供支持,否则会出现Cannot write to '-' (Broken pipe).
的情况。 - 执行
cd /tmp && wget https://apt.llvm.org/llvm.sh
切换到 tmp 目录同时下载 clang 安装脚本。 - 执行
chmod +x llvm.sh && ./llvm.sh 14 all
添加执行权限以及直接运行脚本安装 clang-14 所有工具链。 - 安装完成后执行
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 1 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-14
来设置默认的 clang 与 clang++ 。 - 执行
apt-get install python3-dev -y
安装 python3-dev 提供所需的编译环境之一。 - 执行
apt-get install libssl-dev -y
安装 libssl-dev 提供所需的编译环境之一。 - 环境搭建完毕,可以开始编译项目了。
TODO
- 添加
crypto.gbkToUTF8
函数 - 添加
crypto.utf8ToGBK
函数 - 添加
crypto.urlEncode
函数 - 添加
crypto.urlDecode
函数 - 添加
crypto.rsaGenerateKeyPair
函数 - 添加
crypto.rsaEncrypt
函数 - 添加
crypto.rsaDecrypt
函数 - 修改默认管理员账号密码
- 提醒使用
java -jar
运行后端时添加-Dfile.encoding=UTF-8
防止默认编码导致的乱码问题 - 修复后端
python
与javascript
审核错误问题 - 添加
system
模块与system.delay
函数 - 添加
requests.put
函数 - 添加
requests.delete
函数 - 添加脚本共享机制,从中央仓库或者指定github仓库中拉取脚本,然后自动导入数据库中,同时也可以以上传zip包的方式。可设定此次拉取是否需要审核,不需要则直接导入为可用状态,且此功能属于管理员功能。
- 前端在登陆页面添加后端服务地址设置,配置保存到
localStorage
中。
结语
暂时告一段落了,填坑的话还是慢慢来吧。
那就这样了,有缘再见~