我正在使用 Go 和 Aws Lambda 編寫一個 Slack 機器人。Slack 要求機器人在 3 秒內回復。然而,有時我無法讓它回復那么快,因為它正在與其他無服務器應用程序“對話”以請求一些數據或調度任務。我以前從未使用過 goroutine,但我希望我可以實現這樣的東西:Lambda 收到請求機器人創建一個 goroutine 來處理這個請求并采取相應的行動處理程序不會等待所有這些操作完成,而是立即回復 200。Lambda 繼續運行,直到 goroutine 完成。我不確定這是否可能。我讀過有關 的內容sync.WaitGroup,但我不確定如何將它與 main 函數合并在一起。我應該在處理程序中使用它嗎?但我需要return響應,而這不是我可以包裝到 goroutine 中的函數。理想情況下,我希望處理程序立即回復,然后在后臺處理 goroutine。
1 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
請求完成后,不要嘗試在 lambda 處理程序中執行任何操作。
更可靠的方法:
接受呼叫并記錄所需的任何輸入數據。
將數據放入SQS中
使用 HTTP 200 進行響應
另一個(SQS 觸發的)函數執行處理,并在需要時回調 Slack 記錄的數據
response_url
- 1 回答
- 0 關注
- 164 瀏覽
添加回答
舉報
0/150
提交
取消