1

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

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

4

1 回答 1

0

一种方法是使用一些分布式任务框架,比如Celery。收到请求后,您开始在任务中进行繁重的计算,使用任务的 uuid 作为标识符,然后将其连同202 Accepted响应和链接发送回客户端,客户端可以通过该链接访问您的 API 以查找结果。

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

于 2013-11-09T18:40:36.547 回答