在asp.net webforms中启动一个新的长时间线程如何?
我们有一个排名表方法,它需要5个小队才能完成 我们将列表缓存在memcache中,但当缓存过期时,它将阻止所有请求 所以我想将列表和缓存时间一起缓存在memcache中,并设置一个长的过期时间 每次从memcache获取列表时,程序也会检查缓存时间,如果超过1小时,程序会启动一个新线程,重新生成排名列表,程序会立即返回旧列表 因此,该计划没有障碍 问题是,在asp.net中开始新的步伐是否正确?如果新线程在aspx线程响应结束时被终止在asp.net webforms中启动一个新的长时间线程如何?,asp.net,Asp.net,我们有一个排名表方法,它需要5个小队才能完成 我们将列表缓存在memcache中,但当缓存过期时,它将阻止所有请求 所以我想将列表和缓存时间一起缓存在memcache中,并设置一个长的过期时间 每次从memcache获取列表时,程序也会检查缓存时间,如果超过1小时,程序会启动一个新线程,重新生成排名列表,程序会立即返回旧列表 因此,该计划没有障碍 问题是,在asp.net中开始新的步伐是否正确?如果新线程在aspx线程响应结束时被终止 如何解决扩展缓存锁???我们使用3台iis服务器您可以使用G
如何解决扩展缓存锁???我们使用3台iis服务器您可以使用Global.asax中的
App_Start
获取一个与请求无关的线程,但您应该知道它仍然有局限性(例如工作池可能在一段时间后将其杀死)
查看此处了解更多信息:您必须首先增加应用程序的超时时间,您可以在配置文件中进行设置。 为了不断开
<system.web>
<sessionState timeout="60"></sessionState>
</system.web>
链接:
对于缓存,您可以使用不同的持久缓存系统:会话、缓存或应用程序
如果使用缓存
,则可以为持久化时间设置时间跨度
链接:我认为您应该使用http处理程序
它作为一个线程工作,您可以在那里访问任何东西
会话
,缓存
等。为此,您必须使用
iRequiresessionState
你可以在任何地方打电话
从
code-behind
或从jquery