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

feature(worker): toplevel mirror job logic

这个提交包含在:
bigeagle
2016-04-23 17:52:30 +08:00
父节点 0e808a449a
当前提交 681388ffdd
共有 8 个文件被更改,包括 422 次插入25 次删除

查看文件

@@ -1,5 +1,7 @@
package worker
import "time"
// mirror provider is the wrapper of mirror jobs
type providerType uint8
@@ -17,15 +19,15 @@ type mirrorProvider interface {
// TODO: implement Run, Terminate and Hooks
// run mirror job in background
Start()
Start() error
// Wait job to finish
Wait()
Wait() error
// terminate mirror job
Terminate()
Terminate() error
// job hooks
Hooks()
Hooks() []jobHook
Interval() int
Interval() time.Duration
WorkingDir() string
LogDir() string
@@ -42,7 +44,8 @@ type mirrorProvider interface {
type baseProvider struct {
ctx *Context
name string
interval int
interval time.Duration
hooks []jobHook
}
func (p *baseProvider) Name() string {
@@ -63,7 +66,7 @@ func (p *baseProvider) Context() *Context {
return p.ctx
}
func (p *baseProvider) Interval() int {
func (p *baseProvider) Interval() time.Duration {
return p.interval
}
@@ -93,3 +96,11 @@ func (p *baseProvider) LogFile() string {
}
panic("log dir is impossible to be unavailable")
}
func (p *baseProvider) AddHook(hook jobHook) {
p.hooks = append(p.hooks, hook)
}
func (p *baseProvider) Hooks() []jobHook {
return p.hooks
}