1

每天晚上我的 HTTPContext.Current.Cache 都会被清除。我想在晚上 X 时间预热站点并用数据填充缓存。

由于我使用 HTTPContext,因此必须在网站内运行。我目前正在通过单击站点上的一个简单按钮来启动缓存,然后在几分钟的时间范围内异步填充缓存。

我已经寻找了一个解决方案,其中选项并没有像我想象的那样轻松完成工作:

System.Timers不断轮询。它似乎也没有设置我希望它运行的特定时间的选项?

Quartz看起来有点矫枉过正,但或许可以胜任。尽管需要阅读以使其正常工作。

RegisterWaitForSingleObject也可以工作,但这里也只有一个计时器?也不确定您是否可以检查是否已经创建了一个对象,因此存在创建许多对象的风险。创建对象后也不更改计时器。

浏览它们的速度相对较快,所以可能是错误的。您对从站点内运行预定的 http 请求有何看法?

[编辑] 错字。

4

1 回答 1

1

这就是我要做的-

  1. 在站点内创建一个具有匿名访问权限的页面,并将用于启动缓存的代码(现在写在按钮单击上)放在PAGE LOAD 事件上。

  2. 在 C# 中创建一个简单的控制台应用程序,向该页面发出 HTTPRequest(您可以查看System.Net.WebClient的示例)。

  3. 安排此控制台应用程序的 .exe 在服务器上的 Windows 调度程序上的特定时间(如凌晨 4 点)运行。

于 2017-08-22T13:33:21.003 回答