ASP.NET 站点 - 在特定时间触发一些代码
Posted
技术标签:
【中文标题】ASP.NET 站点 - 在特定时间触发一些代码【英文标题】:ASP.NET Site - Firing some code at a specific time 【发布时间】:2012-01-24 23:24:04 【问题描述】:我正计划在共享主机上构建一个 ASP.NET 网站。我没有为此提供 Windows 服务的选项。对于可以在凌晨 3 点执行任务的网站,我有哪些特定选择?也许开始一个单独的线程,或者什么?
谢谢。
【问题讨论】:
看看haacked.com/archive/2011/10/16/… 【参考方案1】:我正要做类似的事情。
需要从 Global.asax 中启动一个单独的线程。
void Application_Start(object sender, EventArgs e)
// Code that runs on application startup
您还需要考虑到应用程序池会循环多次,因此请确保它基于特定时间,并且您还有一个数据库来存储它是否已运行,以防应用程序池在凌晨 3 点,很有可能。
您还需要某种形式的保持活动服务,就像您的网站处于非活动状态一样,应用程序池在有人点击它之前不会重新启动。
【讨论】:
【参考方案2】:我们以两种方式之一处理此类活动:
1) 在 global.asax Application_Start
中启动一个线程,该线程负责在适当的时间执行活动。
2) 在HttpRuntime.Cache
中存储一个虚拟对象,并在应用程序启动时指定超时时间,并让它执行CacheItemRemovedCallback
中的活动。
【讨论】:
【参考方案3】:Seem legit
【讨论】:
以上是关于ASP.NET 站点 - 在特定时间触发一些代码的主要内容,如果未能解决你的问题,请参考以下文章
提交按钮未在 ASP.NET MVC Web 应用程序中触发
在 ASP.NET Web API 中创建一个线程每 X 秒执行一次特定代码