gpt4 book ai didi

go - 如何使用 Go reflect 向 cron 添加功能?

转载 作者:IT王子 更新时间:2023-10-29 02:21:18 25 4
gpt4 key购买 nike

我正在尝试通过从如下文件中读取配置来动态安排一些作业

import (
"github.com/robfig/cron"
"fmt"
)
masterJobDetails :=// this is array of job from file

c := cron.New()
for k, v := range masterJobDetails {

fmt.Println(k, v.JobName)
c.AddFunc(v.CronExpression, v.JobName)//JobName is function name in string format which need to call on specific interval

}

c.Start()

c.AddFunc() 期望 cron 表达式和 func() 作为输入,我可以使用带有 v.JobName 字符串值的 reflect 获取第二个参数吗

最佳答案

无法将 string 转换为 func() 类型。而是使用 switchmap 来查找实际功能。

for k, v := range masterJobDetails {
var jobFunc func()
switch v.JobName {
case "job1":
jobFunc = job1
case "job2":
jobFunc = job2

}
c.AddFunc(v.CronExpression, jobFunc)
}

关于go - 如何使用 Go reflect 向 cron 添加功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48339485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com