Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;带外“;asp.net应用程序的处理技术_Asp.net_Background_Scheduled Tasks_Out Of Band - Fatal编程技术网

&引用;带外“;asp.net应用程序的处理技术

&引用;带外“;asp.net应用程序的处理技术,asp.net,background,scheduled-tasks,out-of-band,Asp.net,Background,Scheduled Tasks,Out Of Band,Jeff之前在博客上写过关于在他的网站上执行“带外”处理的文章,但是我想知道人们正在使用什么其他技术来处理这些类型的任务?Windows Service计划任务,或cron作业。几年前,我看到Rob Howard描述了一种在后台使用HttpModule处理任务的方法。它看起来不像使用缓存那么灵活,但在某些情况下可能会更好 有详细信息,如果您环顾四周,还有许多其他任务捕获相同的信息。如果主要是数据处理任务,而您使用的是MSSQL,那么调度SSIS任务如何?调度任务或cron作业的问题是它们与web

Jeff之前在博客上写过关于在他的网站上执行“带外”处理的文章,但是我想知道人们正在使用什么其他技术来处理这些类型的任务?

Windows Service

计划任务,或cron作业。

几年前,我看到Rob Howard描述了一种在后台使用HttpModule处理任务的方法。它看起来不像使用缓存那么灵活,但在某些情况下可能会更好


有详细信息,如果您环顾四周,还有许多其他任务捕获相同的信息。

如果主要是数据处理任务,而您使用的是MSSQL,那么调度SSIS任务如何?

调度任务或cron作业的问题是它们与web服务器不共享内存空间。您可以设置从web服务器请求页面的计划任务,但这可能会给长时间运行的任务带来问题。让一些低优先级的线程在实际的ASP.Net应用程序堆栈上运行,以执行简单的实用程序任务,如清理缓存、监视资源,以及处理一般的内务管理,这将是一件好事

您可能想看看它是如何实现的。我知道它是用VB.NET编写的,但我把代码改成了C。我仔细阅读了源代码,注意到他们的管理区域中有一个设置计划任务的功能。这些任务通过管理界面设置并存储在数据库中。当站点启动时,通过Global.asax文件,他们或者创建另一个线程来运行此服务,然后在计划时间运行计划任务。我不记得确切的逻辑,已经有一段时间了,但它绝对是一个很好的资源,可以帮助了解其他人如何为Asp.Net应用程序执行带外进程。这种技术仍然保持Asp.Net应用程序中的逻辑,但在我看来,它已经超出了范围。

简单的队列文件以及单独的代理。对于每种类型的带外进程,编写一个单独的agent.exe,它监视一个目录中的队列文件,其中包含执行指定进程所需的任何数据


这可能看起来很肮脏,但在现实世界中,我发现它提供了很大的灵活性,你没有在ASP.net进程空间中进行太多处理,你可以很容易地采用这种方式,在Mono上运行代理进程的廉价Linux服务器上进行处理,当你开始需要更多的RAM/CPU/磁盘时。

如果你对ASP.net页面最满意,你可以编写一个小应用程序来处理你的工作,然后“ping”具有外部服务的应用程序,可监视您的网站。这将使应用程序保持活动状态

  • 使用或的计划任务
  • SQL Server
  • 呼叫和回调