# 定时任务管理器 **Repository Path**: jackjiangmc/data-interaction-manager ## Basic Information - **Project Name**: 定时任务管理器 - **Description**: 定时运行api任务,winform项目,界面简洁,配置安装方便,比那些网页的方便快捷,无论小企业大企业,小项目大项目,均可以使用,直接丢到windows server服务器点开定时器即可跑任务,任务通过数据库插入数据的方式进行部署,对任务的接口进行定义,运行时间,路由线路等定义即可无人值守运行。日志有本地txt输出,可以钉钉输出。 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-07-28 - **Last Updated**: 2024-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据交互管理器 #### 介绍 定时运行api任务,winform项目,界面简洁,配置安装方便,比那些网页的方便快捷,无论小企业大企业,小项目大项目,均可以使用,直接丢到windows server服务器点开定时器即可跑任务,任务通过数据库插入数据的方式进行部署,对任务的接口进行定义,运行时间,路由线路等定义即可无人值守运行。日志有本地txt输出,可以钉钉机器人输出。企业可以依托钉钉机器人来做大型的日志输出地,使用钉钉自带的相关搜索检索功能,进行方便的日志管理。 _**- 配置完Setting.json无需重启软件,直接点击刷新配置即可生效(包括定时器时间timer),采用了实体通知的机制可以实现动态进行配置的变更。**_ #### 软件架构 ![输入图片说明](QQ%E6%88%AA%E5%9B%BE20230815093114.jpg) ![输入图片说明](QQ%E6%88%AA%E5%9B%BE20230815093154.jpg) #### 安装教程 **_注意:首次生成需要把Setting.json放入debug或者release文件夹。_** ![输入图片说明](QQ%E6%88%AA%E5%9B%BE20230815092605.jpg) ![输入图片说明](QQ%E6%88%AA%E5%9B%BE20230815092140.jpg) 1. 需要创建一个任务管理表,可以使用项目目录下这个txt文件存储的语句快速建表,CreateDataBaseTabel.txt 2. 需要配置项目下Setting.json文件 - Setting.json结构说明: - session为数组,可以配置多个接口源,id为唯一标识,用来指认接口实体,path代表接口的主要路径。 - dataBase下有两个属性,connect代表连接字符串,db代表一个枚举, - MySql = 0, - SqlServer = 1, - Sqlite = 2, - Oracle = 3, - PostgreSQL = 4, - Dm = 5, - Kdbndp = 6, - Oscar = 7, - MySqlConnector = 8, - Access = 9, - OpenGauss = 10, - QuestDB = 11, - HG = 12, - ClickHouse = 13, - GBase = 14, - Odbc = 15, - OceanBaseForOracle = 16, - TDengine = 17, - GaussDB = 18, - OceanBase = 19, - Tidb = 20, - 输入要连接的数据库对应的枚举索引就可以了 - timer为定时向数据获取job内容,以保持更新到视图为最新内容,单位为毫秒。 - log为日志视图最大存储条数,如果超过这个数量,视图会入最新删最旧。 - dingset下有三个属性,on代表启用日志输出到钉钉机器人,url代表钉钉机器人的链接,safecode代表钉钉机器人创建时所选的安全验证方式,目前仅支持关键词的验证。 - Setting.json的钉钉配置,(目前仅支持自定义关键词的安全验证方式) - ![输入图片说明](DataTurnClient/652BD619-0B89-49f4-B0DF-8DC204D26699.png) - ![输入图片说明](DataTurnClient/QQ%E6%88%AA%E5%9B%BE20230814155313.jpg) 3. 数据库jobcentre表内容说明 1. JobCode为任务的具体名称,具体到api接口的一个/后面的所有内容。 2. JobName为任务的简称,无实质性逻辑,方便浏览。 3. JobSatatus为任务的状态,1为启用,0为禁用,方便任务管理。 4. JobRunTime为任务的运行时间字符串: - 时间字符串规则 - 0:00 用:分割,前面的代表时间类型,后面代表具体的value - 层级,列表0代表时,列表1代表分,列表2代表秒,列表3代表如果是之间类型,所要执行的时间 - 时间类型代码,0-未启用,1-固定类型,2-循环类型,3-之间类型 - 特殊说明。3-之间类型 - 例:0:00,3:87,0:00,2:20 - 此例为,在时间是早上8点到晚上7点之间,每20分钟循环执行 5. JobDetail为任务的具体描述,无逻辑,方便预览。 6. JobWeek为任务运行时间的延申,字符串有的星期枚举索引即为运行,没有即为该星期中的那一天不运行任务。 7. JobRoute为任务的路由,主要格式为0:Job 其中:是必须的,0代表的是Setting.json配置的session列表的id。代表使用这个线路。:号后面的内容为更具体一些的路径,方便接口的扩展 8. JobMode为任务的请求方式,主要是使用Get请求,使用Post请求也希望可以在接口那边预先定义一个预值。比如页数,日期 #### 使用说明 1. 如需启用定时器,需要在开启软件之后把右上角的定时器的checkbox选中即可启用根据时间字符串,星期字符串,来进行自动运行任务。 2. 此管理器共有两个tab,第一个tab为任务,第二个tab主要是用于日志,文本输出的日志也内置,所有任务跑下来的返回结果均会在log日志中以日的单位体现。 3. 任务页拥有右键菜单,可以根据需要使用 #### 参与贡献 1. 有啥疑问可以加我的q 2273595183。也可以提需求。 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)