对长时间运行过程的建议

时间:2014-03-05 04:25:30

标签: c# asp.net

我的要求是创建一个网站,任意数量的用户都可以登录并点击按钮。该按钮单击内的任务将是一个长时间运行的过程(可能需要数小时或数天才能完成任务)。用户可以从网站注销,并可以偶尔登录以检查任务的状态。在this文章中使用这个想法是好的。请对此提出一些建议。

感谢。

1 个答案:

答案 0 :(得分:0)

用于与Windows服务通信的MSMQ或SQL Service Broker。

asp.net page sends start request
                       ------------MSMQ------------>
                                              Windows service picks up message
                                              and starts the long running job.
                                              As progress is made, it can be
                                              recorded in a "Jobs" table
client checks status from the Jobs table
IIS app pool recycles
.... days pass
                                              Service completes work, and records
                                              the job as Completed

                                              Service might send email notification
                                              with a link to the webpage
client can later retrieve the rendered job

如果您确实必须保留在IIS中,我仍然会使用MSMQ或SQL Server,但您只需将服务代码放在Application_Start中。