镜像自地址
https://github.com/tuna/tunasync.git
已同步 2025-12-06 06:26:46 +00:00
feature(worker): toplevel mirror job logic
这个提交包含在:
@@ -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
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户