将离线脚本工程化,避免出现存在各种语言离线脚本不好维护的局面,同时将分散在各个脚本的配置收拢管理起来,便于后续配置的管理。
日志模块、redis模块、db模块在开发脚本时都是一些常用的模块,将这部分功能的初始化工作收敛在整个项目的初始化中。使得开发离线脚本时,避免这部分重复工作,同时保障核心模块的初始化统一,便于后续核心模块的维护。
将代码逻辑拆分成具体的业务逻辑(service/page)和通用功能(service/data),pageService处理具体的业务需求,dataService编写通用的能力,期望达到后续开发时的能力复用。
支持在命令行中传入不同的命令行参数执行不同逻辑。
项目启动时可以指定运行的环境,默认为开发环境。
不同命令生成的日志文件如同单独的脚本一样单独记录。
db、redis连接池存放在全局变量中,用时直接通过名称获取对应连接。
application 离线脚本全局变量,内部包含了redis、mysql连接池,log对象、命令行参数。
cmd 里面包含了在router注册的命令行入口
config 离线脚本的全局配置
models - dao 直接与数据库进行交互
models - errors 自定义错误对象
models - protocol 内部协议
router 命令行参数注册配置
service - page 针对具体业务的逻辑
service - data 可被不同page复用的业务处理能力
utils - 比较独立的跟业务相关性不大的工具类能力
1、在cmd目录下新建一个用于处理具体命令的目录。
2、在新目录中创建一个base.go文件,编写一个实现Cmd接口的路由注册函数。
3、将这个函数写入router的map中进行命令注册。
4、将具体业务写入Cmd接口的Run方法中。