Asynchronous 如何报告消息队列中项目的状态

Asynchronous 如何报告消息队列中项目的状态,asynchronous,architecture,message-queue,servicebus,Asynchronous,Architecture,Message Queue,Servicebus,我计划在我的应用程序中使用消息队列(RabbitMQ)实现一个异步文件生成模块。当用户通过web应用程序UI输入数据时,数据被放入MQ。数据还包含请求用户的ID。有一个辅助应用程序轮询队列。工作人员从队列中删除一个项目,处理该记录,创建一个文件,并将该文件存储到数据库中。我的要求是,我想向用户显示一个网格,显示他们发出的所有请求的状态,如下表所示 ---------------------------- Report Name | Status -----------------

我计划在我的应用程序中使用消息队列(RabbitMQ)实现一个异步文件生成模块。当用户通过web应用程序UI输入数据时,数据被放入MQ。数据还包含请求用户的ID。有一个辅助应用程序轮询队列。工作人员从队列中删除一个项目,处理该记录,创建一个文件,并将该文件存储到数据库中。我的要求是,我想向用户显示一个网格,显示他们发出的所有请求的状态,如下表所示

----------------------------
Report Name  |  Status      
----------------------------
Report 1     |  Not Started 
Report 2     |  Completed   
----------------------------

MQ中仍然存在的所有项应显示“未启动”状态。理论上,这将使我查询MQ中的所有消息,其中User ID=current User ID。我认为从MQ中查看所有消息可能不是很有效,不像在SQL表中那样。基本上,我正在寻找各种/更好的选项,以从设计/架构的角度尽可能最好地处理这一问题

您需要在数据库(SQL)中的某个位置创建一个影子表,然后在推送队列中的某个项目时在数据库中添加一个条目,从队列中拉出该项目时更新状态,完成后再次执行。 是的,拥有第二个数据库有点令人头疼,但是队列的设计是为了帮助您按顺序处理消息,而不是更新所有消息的状态