【发布时间】:2021-09-21 21:09:54
【问题描述】:
我的 asp.net Web 项目有一个需要定期运行的控制器方法“CalByNowBalance”,即每天早上 7 点运行一次。 参考blog,我在我的项目控制器类中创建了一个 trimTrigger()。我不知道如何让它每天早上 7 点运行。这个触发器方法是否应该放在一个单独的类中而不是包含在控制器中?如果这应该作为 Windows 服务器触发,如何?我使用 Angular 作为客户端,它可以从客户端操作吗?任何解决方案或建议将不胜感激。
public async Task<ActionResult> TimeTrigger() {
//Time when method needs to be called
var DailyTime = "07:00:00";
var timeParts = DailyTime.Split(new char[1] {':'});
while(true)
{
var dateNow = DateTime.Now;
var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day,
int.Parse(timeParts[0]), int.Parse(timeParts[1]), int.Parse(timeParts[2]));
TimeSpan timeSpan;
if (date > dateNow) timeSpan = date - dateNow;
else
{
date = date.AddDays(1);
timeSpan = date - dateNow;
};
//waits certan time and run the code
Task.Delay(timeSpan).Wait();
await CalByNowBalance();
}
}
【问题讨论】:
标签: asp.net angular server controller delay