ASP.NET站点 – 在特定时间触发一些代码
我正计划构建一个ASP.NET网站,该网站将位于共享的主机上。 我没有为此服务的Windows服务选项。 我可以选择哪个特定于我可以执行任务的网站,比如凌晨3点? 也许开始一个单独的线程,或什么?
谢谢。
看起来合法
我正准备做类似的事情。
需要发生的是需要从Global.asax启动单独的线程。
void Application_Start(object sender, EventArgs e) { // Code that runs on application startup }
您还需要考虑应用程序池将多次循环,因此请确保它基于特定时间,并且您还拥有一个数据库,用于存储是否已运行,以及应用程序池在凌晨3点标记回收,这很有可能。
您还需要具有某种forms的保持活动服务,就像您的网站处于非活动状态一样,应用程序池在有人点击之前不会重新启动。
我们通过以下两种方式之一处理此类活动:
1)启动global.asax Application_Start
中的一个线程,该线程负责在适当的时间执行活动。
2)在应用程序启动时在HttpRuntime.Cache
存储一个具有指定超时的虚拟对象,并让它在CacheItemRemovedCallback
执行活动。