如何在lambda handler回复后等待goroutine完成

如何在lambda handler回复后等待goroutine完成,go,aws-lambda,goroutine,Go,Aws Lambda,Goroutine,我正在用Go和Aws Lambda写一个slack机器人。Slack要求bot在3秒内回复。然而,有时我无法让它回复得那么快,因为它正在与其他无服务器应用程序“交谈”,以请求一些数据或分派任务。我以前从未使用过goroutines,但我希望我可以实现这样的功能: Lambda收到一个请求 bot创建一个goroutine,该goroutine将处理该请求并相应地对其进行操作 处理程序不会等待所有这些操作完成,而是立即回复200 Lambda继续运行,直到goroutine完成 我不确定这是否可能

我正在用Go和Aws Lambda写一个slack机器人。Slack要求bot在3秒内回复。然而,有时我无法让它回复得那么快,因为它正在与其他无服务器应用程序“交谈”,以请求一些数据或分派任务。我以前从未使用过goroutines,但我希望我可以实现这样的功能:

  • Lambda收到一个请求
  • bot创建一个goroutine,该goroutine将处理该请求并相应地对其进行操作
  • 处理程序不会等待所有这些操作完成,而是立即回复200
  • Lambda继续运行,直到goroutine完成 我不确定这是否可能

    我已经读过有关sync.WaitGroup的内容,但我不确定如何将其与主功能结合起来。我应该在处理程序中使用它吗?但是我需要
    返回
    响应,而这不是一个可以封装到goroutine中的函数


    理想情况下,我希望处理程序立即回复,然后在后台处理goroutine。

    在请求完成后,不要尝试在lambda处理程序中执行任何操作

    更可靠的方法:

  • 接受呼叫并记录所需的任何输入数据
  • 将数据放在SQS中
  • 用HTTP 200响应
  • 另一个(SQS触发的)函数进行处理,如果需要,在录制的
    response\u url上调用Slack