当前位置:  开发笔记 > 后端 > 正文

asp.net进程中长时间运行的代码

如何解决《asp.net进程中长时间运行的代码》经验,为你挑选了1个好方法。

例如,我们在asp.net中的代码形式代码隐藏:

private void btnSendEmails_OnClick()
{
    Send100000EmailsAndWaitForReplies();
}

此代码执行将被超时原因终止.为了解决这个问题,我希望看到这样的事情:

private void btnSendEmails_OnClick()
{
    var taskId = AsyncTask.Run( () =>  Send100000EmailsAndWaitForReplies() );
    // Store taskId for future task execution status checking.
}

并且这个方法将在特殊的环境中以某种方式在w3wp.exe进程之外执行.

有没有人知道用于解决此类问题的框架/工具集?

更新:电子邮件发送方法只是我的意思的一个例子.事实上,我可能需要在asp.net工作流程之外执行许多功能.

例如,对于聚合来自几个第三方服务的数据,对其执行某些操作并将其发送回另一个服务的应用程序而言,这一点非常重要.



1> Eric Z Beard..:

这已作为其他问题的一部分进行了讨论:

asp.net中的多线程

ASP.NET中的BackgroundWorker线程

没有好办法做到这一点.您不希望ASP.NET工作进程中有任何长时间运行的进程,因为它可能在您完成之前进行回收.

编写Windows服务以在后台运行,为您完成工作.将消息丢弃到MSMQ以启动任务.然后他们可以随心所欲地跑.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有