【发布时间】:2018-01-30 18:44:46
【问题描述】:
每天晚上我的 HTTPContext.Current.Cache 都会被清除。我想在晚上 X 时间预热网站并用数据填充缓存。
因为我使用 HTTPContext,所以它必须在网站内运行。我目前正在通过单击站点上的一个简单按钮来启动缓存,然后在几分钟的时间范围内异步填充缓存。
我已经寻找了一个解决方案,其中选项并没有像我想象的那样轻松完成工作:
System.Timers 不断轮询。它似乎也没有设置我希望它运行的特定时间的选项?
Quartz 看起来有点矫枉过正,但或许可以胜任。虽然需要阅读以使其正常工作。
RegisterWaitForSingleObject 也可以,但这里也只有一个计时器?也不确定您是否可以检查是否已经创建了一个对象,因此存在创建许多对象的风险。创建对象后也不更改计时器。
浏览它们的速度相对较快,因此可能是错误的。您对在站点内运行预定的 http 请求有何看法?
[编辑] 错字。
【问题讨论】:
-
此应用程序是在单个实例上运行还是在网络场/网络花园上运行?
-
任务调度器调用 curl 请求包含相关代码的页面?
-
@Win 在网络场上运行。
-
@AlexK。也许可以工作。您能否通过在网站上单击按钮来请求页面以按需启动代码,而不会将用户扔到该页面或以其他方式阻止他们?
-
只要让页面在加载的时候做一些事情,不需要交互。
标签: c# asp.net scheduled-tasks httpcontext.cache