Node.js 多步骤流程的最佳实践
我有一个服务可以发送到“/”。此服务将消息推送到处理消息的RABBITMQ队列。我想在完成后返回指示,然后调用另一个函数进行另一个处理。 情景: (http)->server1->RABBITMQ队列->RABBITMQ使用者->返回server1->调用函数A 服务器是NODE JSNode.js 多步骤流程的最佳实践,node.js,queue,rabbitmq,Node.js,Queue,Rabbitmq,我有一个服务可以发送到“/”。此服务将消息推送到处理消息的RABBITMQ队列。我想在完成后返回指示,然后调用另一个函数进行另一个处理。 情景: (http)->server1->RABBITMQ队列->RABBITMQ使用者->返回server1->调用函数A 服务器是NODE JS 谢谢:)承诺链在您的情况下可能会很有用。它将一个接一个地执行所有异步步骤,如果其中任何一个失败,错误将被捕获 const doSomethingStepByStep = () => { return P
谢谢:)承诺链在您的情况下可能会很有用。它将一个接一个地执行所有异步步骤,如果其中任何一个失败,错误将被捕获
const doSomethingStepByStep = () => {
return Promise.resolve()
.then(() => {
// call server, or whatever - here just an example that promise is resolved
return Promise.resolve()
})
.then(() => {
// etc, call another server
})
.catch(ex => {
// something went wrong in either in the steps above
})
}
// use it
doSomethingStepByStep()
.then((res) => {
// do something with the result
})
查看消息传递的“Process Manager”模式
以及“saga”(and)或“workflowmanager”模式,它们基本上是相同的,但名称不同
其要点是,您有一段理解整个流程的核心代码。它处理在正确的时间发送正确的消息、接收响应、处理该响应以了解下一步会发生什么,以及发出下一个调用以实现流程中的下一步
我有一篇博文介绍了这一核心思想,从节点中的简单JS对象转移到具有这些概念的RabbitMQ