go 异步回调库jobrunner

1. 简介

1. 包

  1. 包路径:github.com/bamzi/jobrunner

  2. 地址:https://github.com/bamzi/jobrunner

2. 使用场景

  1. 用户登录后给其发邮件或发短信。

  2. 不要求实时响应的场景,如果放在处理流程中,会影响请求的响应时间。

2. 使用

1. 支持的操作

  Now: process a job immediately
  In: processing a job one time, after a given time
  Every: process a recurring job after every given time gap
  Schedule: process a job (recurring or otherwise) at a given time

2. 基本使用

  jobrunner.Schedule("* */5 * * * *", DoSomething{}) // every 5min do something
  jobrunner.Schedule("@every 1h30m10s", ReminderEmails{})
  jobrunner.Schedule("@midnight", DataStats{}) // every midnight do this..
  jobrunner.Every(16*time.Minute, CleanS3{}) // evey 16 min clean...
  jobrunner.In(10*time.Second, WelcomeEmail{}) // one time job. starts after 10sec
  jobrunner.Now(NowDo{}) // do the job as soon as it's triggered

3. 为什么放结构体

  1. 主要使用cron中的job特性,实现Run()接口,就能当做job来定时运行Run()方法。

最后更新于

这有帮助吗?