1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-07 15:06:47 +00:00

feat(manager): flush disabled jobs

这个提交包含在:
bigeagle
2016-08-02 23:24:27 +08:00
父节点 437acd3f01
当前提交 ca80dff5cb
共有 6 个文件被更改,包括 164 次插入38 次删除

查看文件

@@ -19,6 +19,7 @@ type dbAdapter interface {
GetMirrorStatus(workerID, mirrorID string) (MirrorStatus, error)
ListMirrorStatus(workerID string) ([]MirrorStatus, error)
ListAllMirrorStatus() ([]MirrorStatus, error)
FlushDisabledJobs() error
Close() error
}
@@ -170,6 +171,26 @@ func (b *boltAdapter) ListAllMirrorStatus() (ms []MirrorStatus, err error) {
return
}
func (b *boltAdapter) FlushDisabledJobs() (err error) {
err = b.db.Update(func(tx *bolt.Tx) error {
bucket := tx.Bucket([]byte(_statusBucketKey))
c := bucket.Cursor()
var m MirrorStatus
for k, v := c.First(); k != nil; k, v = c.Next() {
jsonErr := json.Unmarshal(v, &m)
if jsonErr != nil {
err = fmt.Errorf("%s; %s", err.Error(), jsonErr)
continue
}
if m.Status == Disabled {
err = c.Delete()
}
}
return err
})
return
}
func (b *boltAdapter) Close() error {
if b.db != nil {
return b.db.Close()