0

我正在构建一个可以处理长时间运行的作业(可能会失败)的 Facebook Messenger 聊天机器人,我需要在作业完成之前向 Facebook 响应 200。

我尝试过使用 Pipes,但过了一段时间我意识到我不知道自己在做什么。

我怎样才能做到这一点?

提前致谢

编辑:正如 epsilonhalbe 指出的那样,这个问题非常广泛。我会尽量让它更清楚。

现在我有这个:

myHandler :: Message -> Handler Text
myHandler msg = do
    doSomeStuff msg
    return "ok"

问题是“doSomeStuff”是一个很长的过程,它可能会出现超时错误。所以我想要实现的是在流程完成之前响应“ok”。Http 代码为 202 Accepted。

我在想向邮箱发送消息可能是一个解决方案。但我想要一种更惯用的方式来做到这一点。

4

1 回答 1

1

我在工作中使用hworker来完成类似的事情——发送批量电子邮件。您为长期运行的作业创建、 和的实例Job,然后在您想开始作业时使用。您还需要 Redis 来跟踪您的作业状态以使用 hworker。ToJSONFromJSONqueue

于 2017-08-20T01:34:25.897 回答