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)
}
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.