# qnick_schedule_task **Repository Path**: nickspace/qnick_schedule_task ## Basic Information - **Project Name**: qnick_schedule_task - **Description**: 使用MySql在指定时间调用API接口的方式来执行计划任务 - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2019-01-07 - **Last Updated**: 2024-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # qnick_schedule_task #### 介绍 使用MySql在指定时间调用API接口的方式来执行计划任务 #### 特点 * **在node环境里执行**。 * 没必要再去学crontab机制等按不通系统构建执行计划。 * **用API请求方式执行计划。** * 不管是PHP,Java,.Net项目,都可以统一性的简单实现计划任务逻辑。 * **只要懂js,大部分计划任务逻辑都可以轻松实现。** * 对于新手来说mysql里的定时任务也好 crontab来写bash也好都是比较头疼的事情。 * **逻辑简洁!** * 不多说,遇到过坑的人才懂得真正的价值! :) #### 软件架构 node + mysql #### 安装教程 1. 初始化应用 ```shell $ git clone https://gitee.com/nickspace/qnick_schedule_task.git $ cd qnick_schedule_task $ npm install ``` 2. 配置数据库连接 ```shell $ vi src/config.js ``` 3. 安装数据表 ``` shell $ node install.js 安装成功! ``` 4. 启动计划任务 ```shell $ node index.js 计划任务启动成功。 ``` 1. 测试 * 插入数据,param是用json格式保存的。 ```sql INSERT INTO `task` (`id`, `url`, `param`, `regdate`, `errorcnt`) VALUES (1, '/api/commission/test', '{\"pID\":\"184\"}', '2019-01-06 15:11:01', 0); ``` 在`2019-01-06 15:11:01`的时候会带着 `pID=184`的参数请求 `http://api.nickspace.cn/api/commission/test`API接口,接口返回`200`并返回的内容是`json`,返回数据里有`hbg_msg`的字段就会返回成功。否则返回错误。 #### 使用说明 * 启动成功后设置文件里设置的间隔循环读取数据表【interval】 默认为每三秒请求一次。 * 请求成功的话在数据表里删除该任务,请求错误的话下个时间段里再执行。没有下个执行时间段时锁定该任务不再执行。 在index.js里可以自定义请求成功逻辑。 ```javascript // 在这里自定义请求成功逻辑 http.post(row.url, row.param, function(res) { ... } ``` * 调试成功后推荐使用pm2来执行。 ```shell $ pm2 start index.js --name="qnick_schedule_task" $ pm2 save $ pm2 statup centos ``` 注意了centos是我的服务系统版本,要实际需求改动。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)