亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go112 標準運行時中 appengine taskqueue 的正確上下文是什么

go112 標準運行時中 appengine taskqueue 的正確上下文是什么

Go
瀟湘沐 2023-06-19 15:48:35
我無法讓 appengine 任務隊列接受我拋給它的任何上下文:import (? ? "context"? ? "google.golang.org/appengine"? ? "google.golang.org/appengine/taskqueue")? ?/* snip */? ? ctx:= context.Background()? ? task := taskqueue.NewPOSTTask("/b/mytask", params)? ? _, err = taskqueue.Add(ctx, task, "")? ? if err != nil {? ? ? ? return fmt.Errorf("adding background task with path %s: %v", task.Path, err)? ? }正如go111 遷移文檔所述,我在我的 main.go main func 中調用 appengine.Main() (但是go112 遷移文檔中缺少這一行,所以我不確定它是必需的)。我試過了:context.Background() request.Context() appengine.NewContext(r) appengine.BackgroundContext() context.TODO()全部導致錯誤:不是 App Engine 上下文除了appengine.BackgroundContext()得到:服務橋 HTTP 失?。喊l布?http://appengine.googleapis.internal:10001/rpc_http:撥打 tcp 169.254.169.253:10001:i/o 超時
查看完整描述

3 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

在將 GAE 標準項目從 go19 遷移到 go112 以使用 go 模塊時,我遇到了同樣的問題。此外,我收到了很多“502 bad gateway”消息。

用appengine.Main( ) 替換 main() 中的 http.ListenAndServe( )解決了上下文問題。移動到go111而不是 112 解決了另一個問題。文檔和示例對此不是很清楚。


查看完整回答
反對 回復 2023-06-19
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

遷移到 1.12 的文檔說明:

使用 Cloud Tasks 通過 cloudtasks 包將 Go 1.12 中的任務排入隊列。您可以使用任何 App Engine 服務作為 App Engine 任務的目標。

但是 cloudtasks 包文檔(截至今天)清楚地標記為 beta 和 unstable。所以這里的答案可能是。此功能不受支持。

也就是說,我在 go111 下的生產中使用它,到目前為止我沒有注意到任何嚴重問題。


查看完整回答
反對 回復 2023-06-19
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您之所以看到,internal.flushLog: Flush RPC: service bridge HTTP failed是因為您在嘗試運行 Go 1.12+ 運行時時調用了appengine.Main()或其他庫。appengine(我的猜測是舊的運行時必須調用一些谷歌內部的會計基礎設施,而這不適用于 1.12“下一代”系統。)

解決方案不是降級你的 Go 版本——你這樣做會錯過大量的性能和安全改進,而且你不能利用新硬件——解決方案是刪除對 lib 的所有appengine調用并改用 GCP 的云庫


查看完整回答
反對 回復 2023-06-19
  • 3 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號