我正在构建一个Facebook Messenger聊天机器人,可以处理长时间运行的作业(可能会失败),我需要在作业完成之前向Facebook回复200.
我尝试过使用Pipes,但过了一段时间后我意识到我并不知道自己在做什么。
我怎样才能做到这一点?
提前致谢
编辑: 正如epsilonhalbe指出的那样,问题非常广泛。我会尽力说清楚。
现在我有这个:
myHandler :: Message -> Handler Text
myHandler msg = do
doSomeStuff msg
return "ok"
问题是" doSomeStuff"是一个很长的过程,它可以给出超时错误。所以我想要实现的是回应" ok"在流程完成之前。 Http代码是202 Accepted。
我当时认为向邮箱发送邮件可能是一种解决方案。但是我想要一种比较惯用的方法。
答案 0 :(得分:1)
我在工作中使用hworker这样的事情 - 发送批量电子邮件。您为长期工作制作Job
,ToJSON
和FromJSON
的实例,然后在您想要开始工作时使用queue
。您还需要Redis来跟踪您的工作状态以使用hworker。