如何确定队列中挂起操作的进度



我想使用 MSMQ 队列来处理对 XML 数据文件的大量操作。如果我正确理解该技术,任务将被传递到队列中,它们将通过处理程序获取。此外,如果有很多这样的任务,处理程序将逐个捕获任务。因此,有一些待处理的任务只是放在队列中并等待处理程序。

因此,我还应该以百分比显示网站上上传的XML文件的处理进度。问题是我如何证明真正没有开始处理的待处理任务的这种进度。

后期编辑

反映处理某些任务进度的常规方法是通过某个令牌请求服务以获得一定百分比的完整性,该令牌是之前生成的。然后把它写在网站上。

您可以双向打开队列,并让处理程序将答案传回给发件人。

MSMQ 由不同的进程使用,甚至可以在不同的计算机上运行。这是一种将长时间运行的作业从当前进程(例如服务)中卸载的方法。

如果该服务关闭,您的客户将不知道它,它甚至不应该关心,因为 MSMQ"保证"工作将完成。考虑一下在这种情况下跟踪进度有多大用处?(除了观察到服务可能已死)

如果你只是想做一些简单的异步工作,我建议看看任务类并离开MSMQ。

最新更新