如何计划 C# 代码执行
本文关键字:代码 执行 计划 何计划 | 更新日期: 2023-09-27 18:35:31
我正在使用 ASP.Net 和C#。我想在特定时间同步某些内容。我做了一个方法来做到这一点,它正在工作。但我的问题是如何在特定时间每天调用此方法。
客户端不信任任何第三方工具,因此无法使用它。
Windows服务不是一个好的解决方案。
如果我创建一个 Web 服务,我应该如何在每天的特定时间调用它?
例如,我想每天在晚上 07.00 运行方法。
启动时,将一个项目添加到 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));
}
您可以使用 Windows
计划任务来运行应用程序 (exe) 或创建 Windows 服务并使用计时器。看看它也可以使用 Quartz.NET。