Pan*_*ari 4 c# asp.net web-services
我正在使用ASP.Net和C#.我想在特定时间同步某些东西.我做了一个方法,这样做,它的工作.但我的问题是如何在特定时间每天调用此方法.
客户不信任任何第三方工具,因此无法使用它.
Windows服务不是一个好的解决方案.
如果我提供网络服务,我应该如何在每天的特定时间拨打电话?
例如,我想每天晚上7点运行方法.
在启动时,将项目添加到具有固定过期的HttpRuntime.Cache.当缓存项目到期时,请执行您的工作,例如WebRequest或您拥有的内容.使用固定的到期时间将项重新添加到缓存中.
private static CacheItemRemovedCallback OnCacheRemove = null;
protected void Application_Start(object sender, EventArgs e)
{
AddTask("DoStuff", 60);
}
private void AddTask(string name, int seconds)
{
OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
HttpRuntime.Cache.Insert(name, seconds, null,
DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
CacheItemPriority.NotRemovable, OnCacheRemove);
}
public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
{
// do stuff here if it matches our taskname, like WebRequest
// re-add our task so it recurs
AddTask(k, Convert.ToInt32(v));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3667 次 |
| 最近记录: |