使用Haskell Servant在后台处理作业

使用Haskell Servant在后台处理作业,haskell,servant,Haskell,Servant,我正在构建一个Facebook Messenger聊天机器人,它可以处理长时间运行的作业(可能会失败),在作业完成之前,我需要向Facebook回复200条 我试过使用管道,但过了一会儿我意识到我不知道自己在做什么 我怎样才能做到这一点 提前谢谢 编辑: 正如epsilonhalbe所指出的,这个问题非常广泛。我会尽量说得更清楚 现在我有这个: myHandler :: Message -> Handler Text myHandler msg = do doSomeStuff m

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

我试过使用管道,但过了一会儿我意识到我不知道自己在做什么

我怎样才能做到这一点

提前谢谢

编辑: 正如epsilonhalbe所指出的,这个问题非常广泛。我会尽量说得更清楚

现在我有这个:

myHandler :: Message -> Handler Text
myHandler msg = do
    doSomeStuff msg
    return "ok"
问题是“doSomeStuff”是一个很长的过程,它可能会导致超时错误。因此,我想要实现的是在流程完成之前回答“ok”。Http代码被接受


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

我在工作中用它来做类似的事情——发送批量电子邮件。为长时间运行的作业创建
Job
ToJSON
FromJSON
的实例,然后在需要启动作业时使用
queue
。您还需要Redis来跟踪您的工作状态,以便使用hworker。

您好,现在您遇到的具体问题非常广泛且不清楚。根据经验,当我寻求帮助时,我会尽可能多的努力来写问题,就像我希望有人回答一样。谢谢你的反馈!不管您选择什么“消息传递”机制,您肯定希望长时间运行的计算/进程发生在单独的线程甚至进程中。因此,这里的服务处理程序将只向这个单独的线程或进程“提交”计算,并返回一些标识符,以便在调用方需要计算输出的情况下,稍后获得作业的状态。