Node.JS- R,Python大量计算识别回调何时返回并存储该结果

Node.JS- R, Python heavy computation identify when a callback returns and store that result

本文关键字:返回 何时 回调 存储 结果 识别 计算 JS- Python Node      更新时间:2023-09-26

我公开了一个Node.js REST API,下面调用执行大量计算的R和Python脚本。在调用 R 和 Python 计算之前,我需要识别回调并存储此回调的特定实例,分配一个唯一 id,并立即发送带有使用者作业 id 的快速响应。将来,使用者将使用 id 查询作业/回调的状态。

管理此问题的最佳方法是什么?如何识别回调并将其唯一 ID 存储在数据库中?

一种方法是使用一些分布式任务框架,如Celery。收到请求后,您可以在任务中启动繁重的计算,使用任务的 uuid 作为标识符,并将其发送回客户端,其中包含202 Accepted响应和链接,他可以按照该链接访问您的 API 以查找结果。

在任务调用中,您创建一个空实体,该实体以某种方式发出信号,该实体仍在处理中,可在您发送给客户端的链接中的 URI 下访问。任务完成后,保存结果。