微服务下载队列

时间:2017-01-01 15:56:56

标签: queue message-queue

我正在制作网站,我在其中提供了一个按钮,可以:

  • POST JSON一条路线(现在没什么难的)
  • 但是该过程也应该启动倍数system commands,并在其末尾提供用户可以下载的zip

要做到这一点,我想我需要一个queue。因为两个用户同时连接无法启动该过程。 队列好吗?但我不知道如何保留会话并发送回zip文件...

PS:我正在使用angular2& Python WS

1 个答案:

答案 0 :(得分:0)

您的问题分为三个部分:

首先,每个用户一次只允许执行一次系统命令。

这可以像维护每个用户的同步标志位一样简单,如果可以处理请求则存储1,否则为0。每当发出请求时,首先检查是否设置了此标志。如果不是1则继续返回一些非200状态代码。否则,将其设置为0并触发命令。

其次,处理触发系统命令的多个POST请求。

只有在系统命令需要更多时间并且通常在后台运行时,才应使用队列。

三,如何保留会话

保留会话并不是一个好主意。你有两个选择。一,客户端不断地汇集到另一个端点,以检查zip创建是否完成。其次,(优于第一个)使用websockets在zip创建完成后将通知发送回客户端。