nursarowar / tasker

a light distribute producter&consumer task model based on beego

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tasker

A light distribute producter&consumer task model based on beego.

Features

  • Custom task input, execute logic
  • Auto retry after task execute failed

Limited

  • based on beego orm

Installation

go get github.com/NoneBorder/tasker

Usage

Register to beego model

...
orm.RegisterModel(new(tasker.Task))
...

Create your task struct

type ExampleTask struct {
    Name string
}

func (self *ExampleTask) New() tasker.MsgQ {
    return &ExampleTask{}
}

func (self *ExampleTask) Topic() string {
    return "example_task"
}

func (self *ExampleTask) TaskSpec() string {
    // beego task spec format
    return "*/1 * * * * *"
}

func (self *ExampleTask) Exec(workerID uint64) error {
    fmt.Println(self.Name)
    return nil
}

Publish task

tasker.MsgQPublish(&ExampleTask{
    Name: "example test",
})

Consume task

  • control consume your self
tasker.MsgQConsume(new(ExampleTask))
  • consumer generate as taskspec
tasker.MsgQInitTask(new(ExampleTask))

License

The MIT License (MIT)

About

a light distribute producter&consumer task model based on beego

License:MIT License


Languages

Language:Go 100.0%