我写了一个方法从互联网上下载一些文件(在我的c#,mvc web项目中)。同一个文件应该在特定时间之间每天下载(因为它更新)。在测试环境中工作正常。我的问题是,如果系统处于实时状态,它在测试环境中以相同的方式正常工作。只是为了表明,这是方法
public void setupTimer(TimeSpan savingTime)
{
DateTime current = DateTime.Now;
TimeSpan timeTogo = savingTime - current.TimeOfDay;
if (timeTogo < TimeSpan.Zero)
{
return;
}
this.timer = new Timer(x =>
{
this.saveXmlFile();
}, null, timeTogo, InfiniteTimeSpan);
}
答案 0 :(得分:1)
也许(特定环境下的某些东西是否完全取决于环境 - 我们不能说)。
如果某些事情导致您的流程失效,或者某个应用程序池配置为回收更改特定执行路径,或者存在异常等,则您的计时器将被处理掉。你不想要那个。
顺便说一下,考虑一个预定的任务。根据您对服务器的控制程度,您可以将其计入运行的作业,并允许Windows管理计划而不是使用计时器。这有很多好处。
简而言之 - 您这样做的步骤将是:
http://windows.microsoft.com/en-gb/windows/schedule-task#1TC=windows-7