{"id":13416856,"url":"https://github.com/ouqiang/gocron","last_synced_at":"2025-05-14T00:05:36.745Z","repository":{"id":37789466,"uuid":"82515080","full_name":"ouqiang/gocron","owner":"ouqiang","description":"定时任务管理系统","archived":false,"fork":false,"pushed_at":"2024-03-27T15:57:36.000Z","size":8876,"stargazers_count":6033,"open_issues_count":161,"forks_count":1263,"subscribers_count":129,"default_branch":"master","last_synced_at":"2025-04-10T02:15:49.106Z","etag":null,"topics":["cron","crontab","golang","scheduler"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ouqiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-20T04:00:57.000Z","updated_at":"2025-04-08T09:49:43.000Z","dependencies_parsed_at":"2024-01-16T08:41:04.280Z","dependency_job_id":"7eaccb3a-aa3a-4230-b5f9-9bd36180497e","html_url":"https://github.com/ouqiang/gocron","commit_stats":{"total_commits":295,"total_committers":9,"mean_commits":32.77777777777778,"dds":0.0474576271186441,"last_synced_commit":"960fc988b11ab32a121e4448f600c5ea089962b4"},"previous_names":["ouqiang/cron","ouqiang/cron-scheduler"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouqiang%2Fgocron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouqiang%2Fgocron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouqiang%2Fgocron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouqiang%2Fgocron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ouqiang","download_url":"https://codeload.github.com/ouqiang/gocron/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142906,"owners_count":21054671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cron","crontab","golang","scheduler"],"created_at":"2024-07-30T22:00:23.889Z","updated_at":"2025-04-10T02:15:56.335Z","avatar_url":"https://github.com/ouqiang.png","language":"Go","funding_links":[],"categories":["Popular","Cron Job","Crontab","Go"],"sub_categories":["IRC"],"readme":"# gocron - 定时任务管理系统\n[![Downloads](https://img.shields.io/github/downloads/ouqiang/gocron/total.svg)](https://github.com/ouqiang/gocron/releases)\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://github.com/ouqiang/gocron/blob/master/LICENSE)\n[![Release](https://img.shields.io/github/release/ouqiang/gocron.svg?label=Release)](https://github.com/ouqiang/gocron/releases)\n\n# 项目简介\n使用Go语言开发的轻量级定时任务集中调度和管理系统, 用于替代Linux-crontab [查看文档](https://github.com/ouqiang/gocron/wiki)\n\n原有的延时任务拆分为独立项目[延迟队列](https://github.com/ouqiang/delay-queue)  \n\n## 功能特性\n* Web界面管理定时任务\n* crontab时间表达式, 精确到秒\n* 任务执行失败可重试\n* 任务执行超时, 强制结束\n* 任务依赖配置, A任务完成后再执行B任务\n* 账户权限控制\n* 任务类型\n    * shell任务\n    \u003e 在任务节点上执行shell命令, 支持任务同时在多个节点上运行\n    * HTTP任务\n    \u003e 访问指定的URL地址, 由调度器直接执行, 不依赖任务节点\n* 查看任务执行结果日志\n* 任务执行结果通知, 支持邮件、Slack、Webhook\n\n### 截图\n![流程图](https://raw.githubusercontent.com/ouqiang/gocron/master/assets/screenshot/scheduler.png)\n![任务](https://raw.githubusercontent.com/ouqiang/gocron/master/assets/screenshot/task.png)\n![Slack](https://raw.githubusercontent.com/ouqiang/gocron/master/assets/screenshot/notification.png)\n    \n### 支持平台\n\u003e Windows、Linux、Mac OS\n\n### 环境要求\n\u003e  MySQL\n\n\n## 下载\n[releases](https://github.com/ouqiang/gocron/releases)  \n\n[版本升级](https://github.com/ouqiang/gocron/wiki/版本升级)\n\n## 安装\n\n###  二进制安装\n1. 解压压缩包   \n2. `cd 解压目录`   \n3. 启动        \n* 调度器启动        \n  * Windows: `gocron.exe web`   \n  * Linux、Mac OS:  `./gocron web`\n* 任务节点启动, 默认监听0.0.0.0:5921\n  * Windows:  `gocron-node.exe`\n  * Linux、Mac OS:  `./gocron-node`\n4. 浏览器访问 http://localhost:5920\n\n### 源码安装\n\n- 安装Go 1.11+\n- `go get -d github.com/ouqiang/gocron`\n- `export GO111MODULE=on` \n- 编译 `make`\n- 启动\n    * gocron `./bin/gocron web`\n    * gocron-node `./bin/gocron-node`\n\n\n### docker\n\n```shell\ndocker run --name gocron --link mysql:db -p 5920:5920 -d ouqg/gocron\n```\n\n配置: /app/conf/app.ini\n\n日志: /app/log/cron.log\n\n镜像不包含gocron-node, gocron-node需要和具体业务一起构建\n\n\n### 开发\n\n1. 安装Go1.9+, Node.js, Yarn\n2. 安装前端依赖 `make install-vue`\n3. 启动gocron, gocron-node `make run`\n4. 启动node server `make run-vue`, 访问地址 http://localhost:8080\n\n访问http://localhost:8080, API请求会转发给gocron\n\n`make` 编译\n\n`make run` 编译并运行\n\n`make package` 打包 \n\u003e 生成当前系统的压缩包 gocron-v1.5-darwin-amd64.tar.gz gocron-node-v1.5-darwin-amd64.tar.gz\n\n`make package-all` 生成Windows、Linux、Mac的压缩包\n\n### 命令\n\n* gocron\n    * -v 查看版本\n\n* gocron web\n    * --host 默认0.0.0.0\n    * -p 端口, 指定端口, 默认5920\n    * -e 指定运行环境, dev|test|prod, dev模式下可查看更多日志信息, 默认prod\n    * -h 查看帮助\n* gocron-node\n    * -allow-root *nix平台允许以root用户运行\n    * -s ip:port 监听地址  \n    * -enable-tls 开启TLS    \n    * -ca-file   CA证书文件   \n    * -cert-file 证书文件  \n    * -key-file  私钥文件\n    * -h 查看帮助\n    * -v 查看版本\n\n## To Do List\n- [x] 版本升级\n- [x] 批量开启、关闭、删除任务\n- [x] 调度器与任务节点通信支持https\n- [x] 任务分组\n- [x] 多用户\n- [x] 权限控制\n\n## 程序使用的组件\n* Web框架 [Macaron](http://go-macaron.com/)\n* 定时任务调度 [Cron](https://github.com/robfig/cron)\n* ORM [Xorm](https://github.com/go-xorm/xorm)\n* UI框架 [Element UI](https://github.com/ElemeFE/element)\n* 依赖管理 [Govendor](https://github.com/kardianos/govendor)\n* RPC框架 [gRPC](https://github.com/grpc/grpc)\n\n## 反馈\n提交[issue](https://github.com/ouqiang/gocron/issues/new)\n\n## ChangeLog\n\nv1.5\n--------\n* 前端使用Vue+ElementUI重构\n* 任务通知\n    * 新增WebHook通知\n    * 自定义通知模板\n    * 匹配任务执行结果关键字发送通知\n* 任务列表页显示任务下次执行时间\n\nv1.4\n--------\n* HTTP任务支持POST请求\n* 后台手动停止运行中的shell任务\n* 任务执行失败重试间隔时间支持用户自定义\n* 修复API接口调用报403错误\n\nv1.3\n--------\n* 支持多用户登录\n* 增加用户权限控制\n\n\nv1.2.2\n--------\n* 用户登录页增加图形验证码\n* 支持从旧版本升级\n* 任务批量开启、关闭、删除\n* 调度器与任务节点支持HTTPS双向认证\n* 修复任务列表页总记录数显示错误\n\nv1.1\n--------\n\n* 任务可同时在多个节点上运行\n* *nix平台默认禁止以root用户运行任务节点\n* 子任务命令中增加预定义占位符, 子任务可根据主任务运行结果执行相应操作\n* 删除守护进程模块\n* Web访问日志输出到终端\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouqiang%2Fgocron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fouqiang%2Fgocron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouqiang%2Fgocron/lists"}