2017-08-28 85 views
0

我正在构建一个ASP.NET Core Web应用程序,我需要运行一些复杂的任务,需要花费相当长的时间才能完成,从几秒到几分钟。用户不必等待整个任务运行,但是我需要随着任务的进度更新UI。我想到了在ASP.NET服务器中处理这个问题的两种方法:一种使用后台线程,另一种使用单独的进程。我不希望长时间运行的任务会以任何方式妨碍Web应用程序。与过程相比,使用线程是否安全?或者在单独的过程中运行这些任务是一种更好,更高效的方式?在单独的后台线程vs进程中运行长时间后台任务

回答

4

我想说在另一个过程中。把它放在一个队列中,并有一个单独的进程处理队列,当完成通过发布工作完成消息或其他信息发送信号给Web应用程序。

如果您在Web应用程序内部使用常规线程,并且服务器在进程中间关闭,或者Web应用程序被回收,则可能会产生一些不良影响。

一些其他的选择进行了概述here

0

你应该有不同的想法,在这样的情况总是想着实时通知方法,如signalR,通过它可以激发您的请求,你不必再担心,一旦它已经完成了它会标示你的应用程序,并且你将可以访问你可以根据你的业务操纵的所有数据。访问此链接了解更多信息An Introduction to SignalR