設(shè)置計(jì)劃作業(yè)是許多現(xiàn)代應(yīng)用程序的常見要求。
借助 Nitric SDK,此任務(wù)得到簡(jiǎn)化,您甚至可以離線測(cè)試計(jì)劃的作業(yè),而無需 Terraform。
在本教程中,我們將逐步使用 Go 中的 Nitric SDK 設(shè)置一個(gè)計(jì)劃作業(yè),該作業(yè)每三天聚合一次數(shù)據(jù)。
如果您之前沒有使用過Nitric SDK (https://nitric.io/),請(qǐng)從本教程開始。
先決條件:
安裝到您的機(jī)器上。
適用于 Go 的 Nitric SDK。
第1步:導(dǎo)入必要的庫
首先將必要的庫導(dǎo)入到 Go 腳本中。在本教程中,我們將使用nitrictech/go-sdk/nitric和nitrictech/go-sdk/faas庫提供創(chuàng)建和管理計(jì)劃作業(yè)所需的功能。
import ( "fmt" "github.com/nitrictech/go-sdk/faas" "github.com/nitrictech/go-sdk/nitric" ) func main() { // TODO: implement your scheduled job here. if err := nitric.Run(); err != nil { fmt.Println(err) } }
第 2 步:定義您的預(yù)定工作
接下來,為您的預(yù)定作業(yè)定義一個(gè)函數(shù)。在此示例中,我們將創(chuàng)建一個(gè)名為“aggregate-data”的新計(jì)劃作業(yè),該作業(yè)將每三天運(yùn)行一次。
在函數(shù)內(nèi)部,我們添加了一個(gè)簡(jiǎn)單的打印語句“聚合數(shù)據(jù)”來演示作業(yè)的活動(dòng)。
nitric.NewSchedule("aggregate-data").Every("3 days", func(ctx *faas.EventContext, _ faas.EventHandler) (*faas.EventContext, error) { fmt.Println("aggregating data") return ctx, nil })
離線測(cè)試您的預(yù)定作業(yè)
使用 Nitric SDK 的優(yōu)點(diǎn)之一是能夠離線測(cè)試計(jì)劃的作業(yè)。這對(duì)于調(diào)試并確保您的作業(yè)在將其部署到云之前按預(yù)期工作特別有用。
只需幾個(gè)步驟,您現(xiàn)在就創(chuàng)建了一個(gè)每三天聚合一次數(shù)據(jù)的計(jì)劃作業(yè),下面還有一些示例,向您展示如何設(shè)置其他頻率。
nitric.NewSchedule("process-often").Every("5 minutes", func(ctx *faas.EventContext, next faas.EventHandler) (*faas.EventContext, error) { return next(ctx) }) nitric.NewSchedule("process-sometimes").Every("2 hours", func(ctx *faas.EventContext, next faas.EventHandler) (*faas.EventContext, error) { return next(ctx) }) nitric.NewSchedule("process-rarely").Every("30 days", func(ctx *faas.EventContext, next faas.EventHandler) (*faas.EventContext, error) { return next(ctx) })
注意:還支持 CRON 表達(dá)式!(https://nitric.io/docs/schedules#using-cron)文章來源:http://www.zghlxwxcb.cn/article/350.html
文章來源地址http://www.zghlxwxcb.cn/article/350.html
到此這篇關(guān)于在GO中使用Nitric運(yùn)行計(jì)劃任務(wù) | Nitric SDK教程的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!