简介
我们在 Web 开发中时常会遇到这样的需求,执行一个操作之后,需要给用户一定形式的通知。例如,用户下单之后通过邮件发送电子发票,网上购票支付后通过短信发送车次信息。但是这类需求并不需要非常及时,如果放在请求流程中处理,会影响请求的响应时间。这类任务我们一般使用异步的方式来执行。jobrunner
就是其中一个用来执行异步任务的 Go 语言库。得益于强大的cron
库,再搭配jobrunner
的任务状态监控,jobrunner
非常易于使用。
快速使用
本文使用 Go Modules。
创建目录并初始化:
$ mkdir jobrunner && cd jobrunner
$ go mod init github.com/darjun/go-daily-lib/jobrunner
安装jobrunner
:
$ go get -u github.com/bamzi/jobrunner
使用:
package main
import (
"fmt"
"time"
"github.com/bamzi/jobrunner"
)
type GreetingJob struct {
Name string
}
func (g GreetingJob) Run() {
fmt.Println("Hello, &