NodeJS 处理长时间运行或重复的端点的最佳方式是什么?

a8jjtwal  于 2022-12-12  发布在  Node.js
关注(0)|答案(1)|浏览(138)

我正在做一个项目,假设测试用例是,我们在一个特定的端点中有很多第三方API来进行支付,我们必须等待该端点的每一个API,这样我们才能在下一个端点中使用它。因此,目前我只是使用同步等待,但它花费的时间太长,而且太混乱。示例

PaymentHandler(){
 constructor(){ // we aill declare all the data and its initial value}

 async function1(){//it will call a certain api and store that data in class}

 async function2(){//it will call a certain api and store that data in class}

 async function3(){//it will call a certain api and store that data in class}

 async function4(){//it will call a certain api and store that data in class}
}

我在节点中调用这个类,在这里我使用它作为,但是在这里,它们是一个等待,这是必要的,因为在调用函数2之后,我们将不得不等待大约2天,以从函数3获得更新的数据。如果我们不这样做,t wait函数2之后,我们得到的付款状态为unclaimed,但如果我们只是等待两秒钟,交易正在由第三方API处理,在这段时间内,我们得到交易状态为成功。这是因为付款一次最多可以包含10k笔交易。

const obj = new PaymentHandler()
    await obj.function1(res);
    await obj.function2(res,payment_details);
    await sleep(2000);
    await obj.function3(res);
    await obj.function4(res);

我是第一次这样做,不确定这是一个好的方法,任何建议,可能会帮助我在这使用这种方法,我得到我的回应在大约9秒,这是一个很长的等待时间的客户。

umuewwlo

umuewwlo1#

有很多不同的方法可以处理这些问题。但是我推荐使用cron作业的工作进程worker_threads。工作线程可以极大地提高性能,它是为这类任务设计的,因为它可以防止它们给其他部分带来问题,因为它是隔离的。
此外,它在很大程度上取决于应用程序的特定要求和需要处理的任务类型。
docs。另外还有很多库,这使得它更容易使用。干杯

相关问题