最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang AGScheduler動態(tài)持久化任務調(diào)度的強大庫使用實例

 更新時間:2023年10月16日 11:09:35   作者:kwkwc  
這篇文章主要為大家介紹了Golang AGScheduler動態(tài)持久化任務調(diào)度的強大庫使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

以前一直使用 Python 的任務調(diào)度庫 APScheduler(支持任務持久化,支持多種存儲方式),但由于沒有找到與它功能和使用方式類似的 Golang 庫,所以模仿 APScheduler 3.x 寫了個簡易版本的 AGScheduler。

AGScheduler

Advanced Golang Scheduler (AGScheduler) 是一款適用于 Golang 的任務調(diào)度程序,支持多種調(diào)度方式,動態(tài)更改和持久化任務

警示

該庫處于實驗階段,不建議用于生產(chǎn)環(huán)境

鏈接 https://github.com/kwkwc/agscheduler

特性

  • 支持三種調(diào)度方式

    • [x] 一次性執(zhí)行
    • [x] 間隔執(zhí)行
    • [x] Cron 式調(diào)度
  • 支持多種任務存儲方式

    • [x] Memory
    • [x] GROM(任何 GROM 支持的 RDBMS 都能運行)
    • [x] Redis
    • [x] MongoDB

使用

package main
import (
    "fmt"
    "log/slog"
    "time"
    "github.com/kwkwc/agscheduler"
    "github.com/kwkwc/agscheduler/stores"
)
func printMsg(j agscheduler.Job) {
    slog.Info(fmt.Sprintf("Run %s %s\n", j.Name, j.Args))
}
func main() {
    agscheduler.RegisterFuncs(printMsg)
    store := &stores.MemoryStore{}
    scheduler := &agscheduler.Scheduler{}
    scheduler.SetStore(store)
    job := agscheduler.Job{
        Name:     "Job",
        Type:     agscheduler.TYPE_INTERVAL,
        Timezone: "UTC",
        Func:     printMsg,
        Args:     []any{"arg1", "arg2", "arg3"},
        Interval: 2 * time.Second,
    }
    jobId := scheduler.AddJob(job)
    job, _ = scheduler.GetJob(jobId)
    slog.Info(fmt.Sprintf("Scheduler add %s %s.\n\n", job.Name, job))
    scheduler.Start()
    slog.Info("Scheduler Start.\n\n")
    select {}
}

注冊函數(shù)

由于 golang 無法序列化函數(shù),所以 scheduler.Start() 之前需要使用 RegisterFuncs 注冊函數(shù)

完整示例

致謝

APScheduler

以上就是Golang AGScheduler動態(tài)持久化任務調(diào)度的強大庫使用實例的詳細內(nèi)容,更多關于Go AGScheduler任務調(diào)度的資料請關注腳本之家其它相關文章!

相關文章

  • Go語言中使用 buffered channel 實現(xiàn)線程安全的 pool

    Go語言中使用 buffered channel 實現(xiàn)線程安全的 pool

    這篇文章主要介紹了Go語言中使用 buffered channel 實現(xiàn)線程安全的 pool,因為Go語言自帶的sync.Pool并不是很好用,所以自己實現(xiàn)了一線程安全的 pool,需要的朋友可以參考下
    2014-10-10
  • golang中使用sync.Map的方法

    golang中使用sync.Map的方法

    這篇文章主要介紹了golang中使用sync.Map的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Go語言判斷文件或文件夾是否存在的方法

    Go語言判斷文件或文件夾是否存在的方法

    這篇文章主要介紹了Go語言判斷文件或文件夾是否存在的方法,結(jié)合具體實例形式對比分析了Go語言針對文件與目錄判斷的操作技巧與相關注意事項,需要的朋友可以參考下
    2017-05-05
  • GoLang context包的使用方法介紹

    GoLang context包的使用方法介紹

    日常Go開發(fā)中,Context包是用的最多的一個了,幾乎所有函數(shù)的第一個參數(shù)都是ctx,那么我們?yōu)槭裁匆獋鬟fContext呢,Context又有哪些用法,底層實現(xiàn)是如何呢?相信你也一定會有探索的欲望,那么就跟著本篇文章,一起來學習吧
    2023-03-03
  • golang項目如何上線部署到Linu服務器(方法詳解)

    golang項目如何上線部署到Linu服務器(方法詳解)

    這篇文章主要介紹了golang項目如何上線部署到Linu服務器,本文通過兩種方法給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 詳解Go module的介紹及使用

    詳解Go module的介紹及使用

    module是一個相關Go包的集合,它是源代碼更替和版本控制的單元。這篇文章主要介紹了Go module的介紹及使用,需要的朋友可以參考下
    2020-10-10
  • Golang?Template實現(xiàn)自定義函數(shù)的操作指南

    Golang?Template實現(xiàn)自定義函數(shù)的操作指南

    這篇文章主要為大家詳細介紹了Golang如何利用Template實現(xiàn)自定義函數(shù)的操作,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-02-02
  • 利用Go語言初步搭建一個web應用的教程

    利用Go語言初步搭建一個web應用的教程

    這篇文章主要介紹了利用Go語言初步搭建一個web應用的教程,由于很多國人盲目迷信谷歌,導致Go語言在國內(nèi)的人氣遠超國外...需要的朋友可以參考下
    2015-06-06
  • Go中的Timer 和 Ticker詳解

    Go中的Timer 和 Ticker詳解

    在日常開發(fā)中,我們可能會遇到需要延遲執(zhí)行或周期性地執(zhí)行一些任務,這個時候就需要用到 Go 語言中的定時器,本文將會對這兩種定時器類型進行介紹,感興趣的朋友一起看看吧
    2024-07-07
  • 使用Go調(diào)用OpenAI兼容API模型

    使用Go調(diào)用OpenAI兼容API模型

    本文介紹了使用Go語言調(diào)用兼容OpenAI API的模型(LMStudio/Ollama)的方法,主要涵蓋了非流式對話、流式打字機效果、多輪上下文對話以及圖片交互等內(nèi)容,文章詳細解釋了如何準備環(huán)境,實現(xiàn)非流式對話的特點,需要的朋友可以參考下
    2026-05-05

最新評論

定西市| 凤冈县| 财经| 客服| 定安县| 梁山县| 莱州市| 新龙县| 景泰县| 抚宁县| 马尔康县| 奉贤区| 万安县| 鄢陵县| 依兰县| 金平| 广汉市| 张家川| 无锡市| 富平县| 桐乡市| 阜宁县| 元谋县| 繁昌县| 镇安县| 建德市| 健康| 四平市| 茂名市| 恭城| 隆尧县| 钟山县| 宜宾县| 都江堰市| 宽甸| 福州市| 永定县| 得荣县| 东港市| 博野县| 辽宁省|