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
|
||||
}
|
||||
|
||||
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) {
|
||||
js, ok := l[gid]
|
||||
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]
|
||||
if !ok {
|
||||
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) {
|
||||
for _, r := range job.Rules {
|
||||
for _, gid := range r.GroupIDs {
|
||||
n.link.add(gid, job.ID, r.ID, job.Group)
|
||||
}
|
||||
}
|
||||
n.link.addJob(job)
|
||||
|
||||
cmds := job.Cmds(n.ID, n.groups)
|
||||
if len(cmds) == 0 {
|
||||
|
@ -140,11 +136,7 @@ func (n *Node) delJob(id string) {
|
|||
}
|
||||
|
||||
delete(n.jobs, id)
|
||||
for _, r := range job.Rules {
|
||||
for _, gid := range r.GroupIDs {
|
||||
n.link.delJob(gid, job.ID)
|
||||
}
|
||||
}
|
||||
n.link.delJob(job)
|
||||
|
||||
cmds := job.Cmds(n.ID, n.groups)
|
||||
if len(cmds) == 0 {
|
||||
|
@ -165,12 +157,7 @@ func (n *Node) modJob(job *models.Job) {
|
|||
return
|
||||
}
|
||||
|
||||
for _, r := range oJob.Rules {
|
||||
for _, gid := range r.GroupIDs {
|
||||
n.link.del(gid, oJob.ID, r.ID)
|
||||
}
|
||||
}
|
||||
|
||||
n.link.delJob(oJob)
|
||||
prevCmds := oJob.Cmds(n.ID, n.groups)
|
||||
*oJob = *job
|
||||
cmds := oJob.Cmds(n.ID, n.groups)
|
||||
|
@ -184,11 +171,7 @@ func (n *Node) modJob(job *models.Job) {
|
|||
n.delCmd(cmd)
|
||||
}
|
||||
|
||||
for _, r := range oJob.Rules {
|
||||
for _, gid := range r.GroupIDs {
|
||||
n.link.add(gid, oJob.ID, r.ID, oJob.Group)
|
||||
}
|
||||
}
|
||||
n.link.addJob(oJob)
|
||||
}
|
||||
|
||||
func (n *Node) addCmd(cmd *models.Cmd, notice bool) {
|
||||
|
@ -280,13 +263,13 @@ func (n *Node) modGroup(g *models.Group) {
|
|||
if !ok {
|
||||
// job 已删除
|
||||
if n.delIDs[jid] {
|
||||
n.link.delJob(g.ID, jid)
|
||||
n.link.delGroupJob(g.ID, jid)
|
||||
continue
|
||||
}
|
||||
|
||||
if job, err = models.GetJob(jl.gname, jid); err != nil {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
@ -311,7 +294,7 @@ func (n *Node) modGroup(g *models.Group) {
|
|||
if !ok {
|
||||
// 数据出错
|
||||
log.Warnf("WTF! group[%s] job[%s]", g.ID, jid)
|
||||
n.link.delJob(g.ID, jid)
|
||||
n.link.delGroupJob(g.ID, jid)
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue