mirror of https://github.com/shunfei/cronsun
node: 整理 group link 相关函数
parent
2834f42b34
commit
630a4dab43
|
@ -39,6 +39,14 @@ func (l link) add(gid, jid, rid, gname string) {
|
||||||
j.rules[rid] = true
|
j.rules[rid] = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l link) addJob(job *models.Job) {
|
||||||
|
for _, r := range job.Rules {
|
||||||
|
for _, gid := range r.GroupIDs {
|
||||||
|
l.add(gid, job.ID, r.ID, job.Group)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (l link) del(gid, jid, rid string) {
|
func (l link) del(gid, jid, rid string) {
|
||||||
js, ok := l[gid]
|
js, ok := l[gid]
|
||||||
if !ok {
|
if !ok {
|
||||||
|
@ -56,7 +64,15 @@ func (l link) del(gid, jid, rid string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l link) delJob(gid, jid string) {
|
func (l link) delJob(job *models.Job) {
|
||||||
|
for _, r := range job.Rules {
|
||||||
|
for _, gid := range r.GroupIDs {
|
||||||
|
l.delGroupJob(gid, job.ID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l link) delGroupJob(gid, jid string) {
|
||||||
js, ok := l[gid]
|
js, ok := l[gid]
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
|
|
31
node/node.go
31
node/node.go
|
@ -113,11 +113,7 @@ func (n *Node) loadJobs() (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *Node) addJob(job *models.Job, notice bool) {
|
func (n *Node) addJob(job *models.Job, notice bool) {
|
||||||
for _, r := range job.Rules {
|
n.link.addJob(job)
|
||||||
for _, gid := range r.GroupIDs {
|
|
||||||
n.link.add(gid, job.ID, r.ID, job.Group)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cmds := job.Cmds(n.ID, n.groups)
|
cmds := job.Cmds(n.ID, n.groups)
|
||||||
if len(cmds) == 0 {
|
if len(cmds) == 0 {
|
||||||
|
@ -140,11 +136,7 @@ func (n *Node) delJob(id string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
delete(n.jobs, id)
|
delete(n.jobs, id)
|
||||||
for _, r := range job.Rules {
|
n.link.delJob(job)
|
||||||
for _, gid := range r.GroupIDs {
|
|
||||||
n.link.delJob(gid, job.ID)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cmds := job.Cmds(n.ID, n.groups)
|
cmds := job.Cmds(n.ID, n.groups)
|
||||||
if len(cmds) == 0 {
|
if len(cmds) == 0 {
|
||||||
|
@ -165,12 +157,7 @@ func (n *Node) modJob(job *models.Job) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range oJob.Rules {
|
n.link.delJob(oJob)
|
||||||
for _, gid := range r.GroupIDs {
|
|
||||||
n.link.del(gid, oJob.ID, r.ID)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
prevCmds := oJob.Cmds(n.ID, n.groups)
|
prevCmds := oJob.Cmds(n.ID, n.groups)
|
||||||
*oJob = *job
|
*oJob = *job
|
||||||
cmds := oJob.Cmds(n.ID, n.groups)
|
cmds := oJob.Cmds(n.ID, n.groups)
|
||||||
|
@ -184,11 +171,7 @@ func (n *Node) modJob(job *models.Job) {
|
||||||
n.delCmd(cmd)
|
n.delCmd(cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range oJob.Rules {
|
n.link.addJob(oJob)
|
||||||
for _, gid := range r.GroupIDs {
|
|
||||||
n.link.add(gid, oJob.ID, r.ID, oJob.Group)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *Node) addCmd(cmd *models.Cmd, notice bool) {
|
func (n *Node) addCmd(cmd *models.Cmd, notice bool) {
|
||||||
|
@ -280,13 +263,13 @@ func (n *Node) modGroup(g *models.Group) {
|
||||||
if !ok {
|
if !ok {
|
||||||
// job 已删除
|
// job 已删除
|
||||||
if n.delIDs[jid] {
|
if n.delIDs[jid] {
|
||||||
n.link.delJob(g.ID, jid)
|
n.link.delGroupJob(g.ID, jid)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if job, err = models.GetJob(jl.gname, jid); err != nil {
|
if job, err = models.GetJob(jl.gname, jid); err != nil {
|
||||||
log.Warnf("get job[%s][%s] err: %s", jl.gname, jid, err.Error())
|
log.Warnf("get job[%s][%s] err: %s", jl.gname, jid, err.Error())
|
||||||
n.link.delJob(g.ID, jid)
|
n.link.delGroupJob(g.ID, jid)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -311,7 +294,7 @@ func (n *Node) modGroup(g *models.Group) {
|
||||||
if !ok {
|
if !ok {
|
||||||
// 数据出错
|
// 数据出错
|
||||||
log.Warnf("WTF! group[%s] job[%s]", g.ID, jid)
|
log.Warnf("WTF! group[%s] job[%s]", g.ID, jid)
|
||||||
n.link.delJob(g.ID, jid)
|
n.link.delGroupJob(g.ID, jid)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue