如何在App Engine中使用time.sleep()一段时间?

时间:2018-01-29 06:30:20

标签: google-app-engine go sleep google-app-engine-go

我想在App Engine中调用我的App中的两个GET请求。我想在调用第一个请求后睡几分钟,然后调用第二个请求。如果我在代码中添加time.sleep(),我可以部署代码,但如果我点击应用程序的URL,它会给我 - >
错误:服务器错误
服务器遇到错误,无法完成您的请求。
请在30秒后重试。

健康policy.go

isHealthy, err = h.CampaignService.Run(ctx)
return err
if isHealthy {
        startTime = time.Now().Format(time.RFC3339)
        //The line below causes 500 error
        time.Sleep(3 * time.Minute)
        isHealthy, err = h.ReportService.GenerateReport(ctx, startTime)
    }

广告活动运行service.go

req, err = http.NewRequest("GET", "URL1", nil)
client := urlfetch.Client(ctx)
res, err = client.Do(req)
if err == nil && res.StatusCode == http.StatusOK {
    return true, err
}
fmt.Println("Error in Run Service ->", err)
return false, err

生成报告-service.go

req, err = http.NewRequest("GET", "URL2", nil)
client := urlfetch.Client(ctx)
res, err = client.Do(req)
if err == nil && res.StatusCode == http.StatusOK && res.ContentLength > 400 {
    return true, err
}
return false, err

我是App Engine的新用户,如果不是替代方案,那么在应用引擎代码中使用睡眠也是一个好主意吗?

0 个答案:

没有答案