0

我正在使用 Golang 的 crontab 和 resty.v2 创建一个调度程序来调用 POST api(Dropbox 文件上传 api)。
当我手动调用文件上传方法时,它工作正常。但是,当通过 crontab 调度程序调用相同的方法时,它不会进行其余调用。
有趣的事实是,它既没有抛出任何错误,也没有提供任何休息调用响应。
PFB 调用上传方法的调度程序代码:

func StartJob() {
ctab := crontab.New()

for _, v := range strings.Split(os.Getenv("schedules"), commaSeparator) {
    match, _ := regexp.MatchString(regex, v)
    if match == true {
        hhmm := strings.Split(v, colonSeparator)
        expresion := fmt.Sprintf(cronExpression, hhmm[1], hhmm[0])
        ctab.MustAddJob(expresion, func() {
            go service.Upload(dropboxEndpoint, dropboxAccessToken, os.Getenv("hkpath"))
        })
    } else {
        fmt.Printf("Not acceptable time-format : %s\n", v)
    }
}}

这是上传方法代码:

func Upload(dropboxEndpoint string, dropboxAccessToken string, path string) {
_, fileName := filepath.Split(path)
fileBytes, fileErr := ioutil.ReadFile(path)

if fileErr == nil {
    fmt.Println(path)
    resp, restErr := client.R().
        SetBody(fileBytes).
        SetContentLength(true).
        SetHeader("Authorization", fmt.Sprintf("Bearer %s", dropboxAccessToken)).
        SetHeader("Dropbox-API-Arg", fmt.Sprintf("{\"path\": \"/home/f1/%s/%s\",\"mode\": \"add\",\"autorename\": true,\"mute\": false,\"strict_conflict\": false}", os.Getenv("name"), fileName)).
        SetHeader("Content-Type", "application/octet-stream").
        Post(dropboxEndpoint)

    if restErr != nil {
        log.Fatal(restErr)
    } else {
        fmt.Println(resp)
    }
} else {
    log.Fatal(fileErr)
}}

知道我在做什么错吗?

4

0 回答 0