Node.js 多重集成的最优设计模式

Node.js 多重集成的最优设计模式,node.js,express,salesforce,Node.js,Express,Salesforce,我有一个Node Express API,它的行为有点像一个代理。它负责在多个系统之间同步数据 按时间顺序…必须发生以下情况(我使用节点cron触发此事件) expressapi从ERP下载数据,并将其上传到自己的Mongo实例中 A.这里使用Mongo完成了一些操作 然后,Express API必须从Salesforce下载数据(并将其上传到自己的数据库中) B进行更多的计算 Express API向Salesforce发送批量API upsert请求 Express API向Sales

我有一个Node Express API,它的行为有点像一个代理。它负责在多个系统之间同步数据

按时间顺序…必须发生以下情况(我使用
节点cron
触发此事件)

  • expressapi从ERP下载数据,并将其上传到自己的Mongo实例中 A.这里使用Mongo完成了一些操作

  • 然后,Express API必须从Salesforce下载数据(并将其上传到自己的数据库中) B进行更多的计算

  • Express API向Salesforce发送批量API upsert请求

  • Express API向Salesforce发送批量API更新请求


  • 正如你所看到的,这是混乱的,如果一个零件坏了,很多事情都会出错。目前,我正在每隔几分钟给每个作业打电话,以确保所有数据都已完成下载/处理。有什么更好的方法可以做到这一点?只有在设置了某些字段后才能继续?

    为什么不等待每一步再继续。如果一些可以并行发生,您可以
    等待Promise.all([prom1,prom2])
    在继续之前…嗯…我没有经常使用
    Promise.all
    ,但我总是想象它的用例是用于类似对DB的批量请求。话虽如此,我想它可以通过网络与多个独立的API交互。我的观点是让作业b等待作业a完成(作业b依赖于作业a)。我刚刚补充说,如果作业c依赖于a和b,但a和b彼此不依赖,则可以使用
    Promise.all
    在执行c之前等待它们都完成