如何确定队列中待处理操作的进度?

时间:2012-10-15 16:56:46

标签: c# asp.net .net wcf msmq

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

所以我也应该在百分比上显示在网站上处理上传的XML文件的进度。 问题是如何证明尚未开始处理的待处理任务的进展。

POST EDIT

反映处理某项任务的进度的常规方法是通过某个令牌请求服务返回一定百分比的完整性,之前生成了哪个客户端。然后将其写在网站上。

1 个答案:

答案 0 :(得分:0)

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

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

如果该服务失败,您的客户将不会知道它,它甚至不应该关心MSMQ“保证”该工作将完成。考虑在这种情况下跟踪进度的使用量是多少? (除了观察服务可能死了)

如果您只想做一些简单的异步工作,我建议您查看Task类并离开MSMQ。