【发布时间】:2013-10-10 06:26:41
【问题描述】:
我正在构建一个连接到工作队列的 API,但我遇到了结构问题。我正在寻找的是一种通过 API 连接的工作队列的设计模式。
详情:
我正在使用 Node.js 服务器和 Express 创建一个接受请求并返回 JSON 的 API。这些请求可能需要很长时间来处理(非常数据密集型),所以这就是我们使用排队系统(RabbitMQ)的原因。
例如,假设我向 API 发送了一个需要 15 分钟处理的请求。 Express API 格式化请求并将其放入 RabbitMQ (AMQP) 队列。下一个可用的工作人员将请求从队列中取出并开始处理它。完成后(在本例中为 15 分钟),它将数据保存到 MongoDB 中。 ....现在是什么.....
我的问题是,如何将完成的数据返回给 API 的调用者?调用者是一个完全独立的程序,它通过 Ajax 请求之类的方式联系 API。
worker 会将处理后的数据保存到数据库中,但我无法推回原来的调用程序。
有没有人有任何带有工作队列资源的 API?
请,谢谢。
【问题讨论】:
标签: node.js api queue amqp worker