当前位置: 首页 > news >正文

适用于 Golang 的任务调度程序 AGScheduler

以前一直使用 Python 的任务调度库 APScheduler(支持任务持久化,支持多种存储方式),但由于没有找到和它功能和使用方式类似的 Golang 库,所以模仿 APScheduler 3.x 写了个简易版本的 AGScheduler。

AGScheduler

Advanced Golang Scheduler (AGScheduler) 是一款适用于 Golang 的任务调度程序,支持多种调度方式,动态更改和持久化任务

警示

该库处于实验阶段,不建议用于生产环境

链接

https://github.com/kwkwc/agscheduler

特性

  • 支持三种调度方式
    • 一次性执行
    • 间隔执行
    • Cron 式调度
  • 支持多种任务存储方式
    • Memory
    • GROM(任何 GROM 支持的 RDBMS 都能运行)
    • Redis
    • MongoDB

使用

package mainimport ("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 {}
}

注册函数

由于 golang 无法序列化函数,所以 scheduler.Start() 之前需要使用 RegisterFuncs 注册函数

示例

完整示例

致谢

APScheduler

http://www.lryc.cn/news/193305.html

相关文章:

  • 【HCIP】HCIA复习
  • 【Python小项目之Tkinter应用】【实用工具】实现手写签名器,可选线条粗细,支持清空、撤销、恢复功能,可将写好的签名保存成图片
  • Jenkins集成newman
  • Excel——对其他工作表和工作簿的引用
  • 如何正确的防止服务器被攻击?103.216.153.x
  • 本地生活将成快手新的营收增长点
  • 信息化工程测试验收管理制度
  • 解决vue2设置cross-env设置环境变量不起作用问题
  • Pandas 入门指南
  • 单链表---结构体实现
  • Linux Shell 编程基础语法汇总
  • github 中关于Pyqt 的module view 操作练习
  • 【操作系统】磁臂黏着现象
  • 面试题-React(十二):React中不可变数据的力量
  • conda 创建虚拟环境
  • Java的HTML转义工具
  • Flask (Jinja2) 服务端模板注入漏洞复现
  • file_get_contents 与curl 的对比
  • 两个el-date-picker进行互相关联
  • python openai playground使用教程
  • DOCKER本地仓库
  • python写着玩
  • K8s Kubernetes Namespave Pod Label Deployment Service 实战
  • SpringBoot使用随机端口启动
  • NewStarCTF2023week2-ez_sql
  • 力扣-434.字符串中的单词数
  • 【ALO-BP预测】基于蚁狮算法优化BP神经网络回归预测研究(Matlab代码实现)
  • 分布式存储系统Ceph应用详解
  • 人工智能轨道交通行业周刊-第63期(2023.10.9-10.15)
  • OJ项目——统一数据格式返回,我是如何处理的?