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

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