本文整理汇总了Golang中github.com/ajvb/kala/job.Job类的典型用法代码示例。如果您正苦于以下问题:Golang Job类的具体用法?Golang Job怎么用?Golang Job使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Job类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: GetAll
func (db *BoltJobDB) GetAll() ([]*job.Job, error) {
allJobs := []*job.Job{}
err := db.dbConn.Update(func(tx *bolt.Tx) error {
bucket, err := tx.CreateBucketIfNotExists(jobBucket)
if err != nil {
return err
}
err = bucket.ForEach(func(k, v []byte) error {
buffer := bytes.NewBuffer(v)
dec := gob.NewDecoder(buffer)
j := new(job.Job)
err := dec.Decode(j)
if err != nil {
return err
}
err = j.InitDelayDuration(false)
if err != nil {
return err
}
allJobs = append(allJobs, j)
return nil
})
return err
})
return allJobs, err
}
示例2: Save
// Save persists a Job.
func (d DB) Save(j *job.Job) error {
bytes, err := j.Bytes()
if err != nil {
return err
}
_, err = d.conn.Do("HSET", HashKey, j.Id, bytes)
if err != nil {
return err
}
return nil
}
示例3: Get
func (db *BoltJobDB) Get(id string) (*job.Job, error) {
j := new(job.Job)
err := db.dbConn.View(func(tx *bolt.Tx) error {
b := tx.Bucket(jobBucket)
v := b.Get([]byte(id))
if v == nil {
return job.ErrJobNotFound(id)
}
buf := bytes.NewBuffer(v)
err := gob.NewDecoder(buf).Decode(j)
return err
})
if err != nil {
return nil, err
}
j.Id = id
return j, nil
}