关于go:Go微服务入门到容器化实践落地可观测的微服务电商项目内附文档源码

36次阅读

共计 800 个字符,预计需要花费 2 分钟才能阅读完成。

download:Go 微服务入门到容器化实际,落地可观测的微服务电商我的项目内附文档源码

解析 Golang 定时工作库 gron 设计和原理
简略说,每一个位都代表了一个工夫维度,* 代表选集,所以,下面的语义是:在每天早上的 4 点 05 分触发工作。
但 cron 毕竟只是一个操作系统级别的工具,如果定时工作失败了,或者压根没启动,cron 是没法提醒开发者这一点的。并且,cron 和 正则表达式都有一种魔力,不知道大家是否感同身受,这里引用共事的一句名言:

这世界上有些语言非常相似: shell 脚本, es 查问的那个 dsl 语言, 定时工作的 crontab, 正则表达式. 他们相似就相似在每次要写的时候基本都得从新现学一遍。

刚巧,最近看到了 gron 这个开源我的项目,它是用 Golang 实现一个并发安全的定时工作库。实现非常简略精美,代码量也不多。明天咱们就来一起拆散源码看一下,怎么基于 Golang 的能力做进去一个【定时工作库】。

Gron provides a clear syntax for writing and deploying cron jobs.

gron 是一个泰国小哥在 2016 年开源的作品,它的个性就在于非常简略和清晰的语义来定义【定时工作】,你不必再去记 cron 的语法。咱们来看下作为使用者怎么上手。
首先,咱们还是一个 go get 安装依赖:
$ go get github.com/roylee0704/gron
复制代码
假设咱们期望在【时机】到了当前,要做的工作是打印一个字符串,每一个小时执行一次,咱们就可能这样:
package main

import (

"fmt"
"time"
"github.com/roylee0704/gron"

)

func main() {

c := gron.New()
c.AddFunc(gron.Every(1*time.Hour), func() {fmt.Println("runs every hour.")
})
c.Start()

}

正文完
 0