在asp.net webforms中启动一个新的长时间线程如何?

在asp.net webforms中启动一个新的长时间线程如何?,asp.net,Asp.net,我们有一个排名表方法,它需要5个小队才能完成 我们将列表缓存在memcache中,但当缓存过期时,它将阻止所有请求 所以我想将列表和缓存时间一起缓存在memcache中,并设置一个长的过期时间 每次从memcache获取列表时,程序也会检查缓存时间,如果超过1小时,程序会启动一个新线程,重新生成排名列表,程序会立即返回旧列表 因此,该计划没有障碍 问题是,在asp.net中开始新的步伐是否正确?如果新线程在aspx线程响应结束时被终止 如何解决扩展缓存锁???我们使用3台iis服务器您可以使用G

我们有一个排名表方法,它需要5个小队才能完成

我们将列表缓存在memcache中,但当缓存过期时,它将阻止所有请求

所以我想将列表和缓存时间一起缓存在memcache中,并设置一个长的过期时间

每次从memcache获取列表时,程序也会检查缓存时间,如果超过1小时,程序会启动一个新线程,重新生成排名列表,程序会立即返回旧列表

因此,该计划没有障碍

问题是,在asp.net中开始新的步伐是否正确?如果新线程在aspx线程响应结束时被终止


如何解决扩展缓存锁???我们使用3台iis服务器

您可以使用Global.asax中的
App_Start
获取一个与请求无关的线程,但您应该知道它仍然有局限性(例如工作池可能在一段时间后将其杀死)


查看此处了解更多信息:

您必须首先增加应用程序的超时时间,您可以在配置文件中进行设置。 为了不断开

<system.web>
     <sessionState timeout="60"></sessionState>
</system.web>

链接:

对于缓存,您可以使用不同的持久缓存系统:会话、缓存或应用程序

如果使用
缓存
,则可以为持久化时间设置时间跨度


链接:

我认为您应该使用http处理程序

它作为一个线程工作,您可以在那里访问任何东西
会话
缓存
等。
为此,您必须使用
iRequiresessionState



你可以在任何地方打电话
code-behind
或从
jquery