Documentation ¶
Overview ¶
Example ¶
package main import ( "log" "time" "github.com/northbright/taskman" _ "github.com/northbright/taskman/filehash" ) func main() { data := []byte(`{"file":"task.go","hash_funcs":["md5","sha1"]}`) tm, ch, _ := taskman.New("filehash", 1) // Start a new goroutine to handle the task messages. go func() { for { select { case m := <-ch: switch m.Type { case taskman.ERROR: log.Printf("task: %v error: %v", m.TaskID, m.Data.(string)) case taskman.SCHEDULED: log.Printf("task: %v scheduled", m.TaskID) case taskman.STARTED: log.Printf("task: %v started", m.TaskID) case taskman.STOPPED: log.Printf("task: %v stopped", m.TaskID) state, _ := m.Data.([]byte) log.Printf("saved state: %s", string(state)) case taskman.DELETED: log.Printf("task: %v deleted", m.TaskID) state, _ := m.Data.([]byte) log.Printf("saved state: %s", string(state)) case taskman.RESTORED: log.Printf("task: %v restored", m.TaskID) state, _ := m.Data.([]byte) log.Printf("restored state: %s", string(state)) case taskman.SUSPENDED: log.Printf("task %v suspended", m.TaskID) case taskman.RESUMED: log.Printf("task %v resumed", m.TaskID) case taskman.DONE: log.Printf("task: %v done", m.TaskID) state, _ := m.Data.([]byte) log.Printf("final saved state: %s", string(state)) case taskman.RESULT_GENERATED: log.Printf("task: %v result generated", m.TaskID) result, _ := m.Data.([]byte) log.Printf("result: %s", string(result)) case taskman.EXITED: log.Printf("task: %v exited", m.TaskID) case taskman.ALL_EXITED: log.Printf("all tasks exited") case taskman.PROGRESS_UPDATED: p, _ := m.Data.(int) log.Printf("task: %v, progress: %v", m.TaskID, p) } } } }() id, _ := tm.Add(data) tm.Start(id, nil) <-time.After(time.Second * 5) }
Output:
Index ¶
- Variables
- type Result
- type State
- type Task
- func (t *Task) Deinit(ctx context.Context) error
- func (t *Task) Init(ctx context.Context) error
- func (t *Task) MarshalBinary() ([]byte, error)
- func (t *Task) Result() ([]byte, error)
- func (t *Task) Step() (int64, bool, error)
- func (t *Task) Total() int64
- func (t *Task) UnmarshalBinary(data []byte) error
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultBufferSize int = 8 * 1024 * 1024 NotSupportedHashFuncErr = errors.New("not supported hash func") NoFileToHashErr = errors.New("no file to hash") HashFuncNotAvailableErr = errors.New("hash function is not available") InvalidHashStateErr = errors.New("invalid hash state") FileIsDirErr = errors.New("file is dir") SavedStateNotMatchedErr = errors.New("saved state and hash func not matched") )
Functions ¶
This section is empty.
Types ¶
type Task ¶
type Task struct { File string `json:"file"` HashFuncs []string `json:"hash_funcs"` BufferSize string `json:"buffer_size"` // contains filtered or unexported fields }
func (*Task) MarshalBinary ¶
func (*Task) UnmarshalBinary ¶
Click to show internal directories.
Click to hide internal directories.