Home

Awesome

PPGo_Job定时任务管理系统

一、说明

PPGo_Job是一款轻量级定时任务管理系统,go语言开发,部署超级简单,资源消耗少,运行稳定。 支持定时任务可视化管理、多人多权限的管理,支持大并发,可同时管理多台服务器上的定时任务。

PPGo_Job从v1.0开源以来,得到众多技术朋友的支持和欢迎,已应用在多个公司的生产环境,同时也 吸收使用者的建议和意见,不断改进和优化,目前已经上线了20余个版本,9个稳定版本(生产环境部署完成后才发布新版本)。

码云地址:https://gitee.com/georgehao/PPGo_Job Github地址:https://github.com/george518/PPGo_Job

文档地址:http://www.haodaquan.com/topics/1### Wiki:https://github.com/george518/PPGo_Job/wiki

二、架构

三、特性

V2.x新增以下功能和特性:

总之,管理定时任务,使用PPGo_Job吧,节省出来的时间,或皮或浪,随你。

三、支持

1、给项目一个star

2、请我喝瓶水

github

四、先睹为快

image image image image image image image

五、安装方法

方法一、 编译安装

mac

linux

windows

方法二、直接使用

linux

mac

windows


前台访问:http://your_host:8080 用户名:admin 密码:123456

配置文件

根据自己的情况修改数据库和启动端口

appname = PPGo_Job2
httpport = 8080
runmode = dev

version= V2.2

# 允许同时运行的任务数
jobs.pool = 1000

# 站点名称
site.name = 定时任务管理器

#通知方式 0=邮件,1=信息,2=钉钉,3=微信
notify.type = 0

# 数据库配置
db.host = 127.0.0.1
db.user = root
db.password = "123456"
db.port = 3306
db.name = ppgo_job2
db.prefix = pp_
db.timezone = Asia/Shanghai

# 邮件通知配置
email.host = smtp.mxhichina.com
email.port = 25
email.from = ci@xxx.cn
email.user = ci@xxx.cn
email.password = "xxxxxx"
email.pool = 10

# 短信通知方式配置
msg.url = http://chanxiyou.com/api/tools/send_sms
msg.pool = 10

# 钉钉通知配置
dingtalk.url = "https://oapi.dingtalk.com/robot/send?access_token=%s"
dingtalk.pool = 10

# 微信通知方式配置
wechat.url = http://xx.com/api/tools/send_wechat
wechat.pool = 10

六、编译安装-可能会遇到的问题

go build 时遇到以下错误: jobs/job.go:19:2: cannot find package "golang.org/x/crypto/ssh" in any of:

需要 git clone https://github.com/golang/crypto.git 并拷贝到 $GOPATH/src/golang.org/x/ 下就OK

git clone https://github.com/golang/crypto.git $GOPATH/src/golang.org/x/crypto

Docker

本地编译好的2进制文件放在根目录下执行下面的命令即可拥有

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
docker-compose up -d

#日志查看
docker-compose logs -f web

Windows远程执行

1.开启telnet功能

控制面板->程序和功能->打开或关闭Windows功能,选择Telnet服务端和Telnet客户端

2.启动telnet服务

控制面板->管理工具->服务->Telnet->启动类型改为自动并启动

3.登陆授权

控制面板->管理工具->本地安全策略,在本地安全策略中,安全设置->本地策略->安全选项->网络访问:本地帐户的共享和安全模型->经典

控制面板->管理工具->本地安全策略->安全设置->本地策略->安全选项->帐户:使用空密码的本地帐户只允许进行控制台登录->已禁用

控制面板->管理工具->计算机管理->系统工具->本地用户和组->组->TelnetClients->添加用户

七、任务接口说明

三个简陋的接口,满足日常所需。

1、新增和修改任务接口

id:0
create_id:4
group_id:3
task_name:测试API创建任务
description:测试
concurrent:0
server_id:2
cron_spec:*/2 * * * *
command:free -G
timeout:0
is_notify:0
notify_type:0
notify_tpl_id:0
notify_user_ids:0

参数含义详见数据库字段。 需要注意的是id为0为新增,大于0为修改。

2、任务启动接口

id:11

3、任务暂停接口

id:11

注意使用 form-data的方式传参

4、返回json,status=0表示成功,其他为失败,msg是错误理由或id

{
    "message": 11,
    "status": 0
}

具体可以使用postman测试

八、常见操作问题

1、如何删除任务?

目前操作的步骤是,在非admin用户登陆情况下,编辑一下任务,此任务会到待审核任务列表中,就可以删除了。 因为删除已经审核通过的任务是敏感操作,并且认为删除任务操作执行不多,再加上列表中操作太多,所以就放到待审核任务里执行操作了。如果大家觉得需要在任务列表中添加的话,后期再做修改。

2、删除资源分组问题。

所谓的资源,其实就是执行任务的服务器或者容器。资源的分组就是给这些服务器或者容器分个类。因此,删除资源分组的时候,基于谨慎型原则,必须保证要删除的资源分组下没有服务器资源。要么删除,要么转移到其他分组下。

九、联系我

qq群号:547564773 欢迎交流,欢迎提交代码。

十、感谢

@bannerchi @linxiaozhi @gongwalker