Невозможно resty.v2 POST вызов через вкладку cron - PullRequest
0 голосов
/ 28 июня 2019

Я создаю планировщик, используя crontab Golang и resty.v2 для вызова API POST (API загрузки файла Dropbox).
Когда я вызываю метод загрузки файла вручную, он работает нормально. Но когда тот же метод вызывается через планировщик 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)
}}

Есть идеи, что я делаю не так?

...