我正在开发一个MVC应用程序,它有一个方法,应该在一天结束时运行。我无权访问Windows任务调度程序,无法实现Windows服务。 (因为部署的软件包应该给不同的客户,并且他们有自己的服务器。在这种情况下,我们不会部署Windows服务或使用任务调度程序)
请告诉我有什么方法可以在特定时间执行某些方法。 我看到有使用计时器的方法。但问题是这项工作应该只在一天中完成,而且过程不会超过1分钟。
如果我们使用计时器,资源将分配给计时器服务,并且它不是一个好方法,因为我猜,因为这种方法在一天中只运行一次。 (进程在其他23小时59分钟内运行,这是浪费资源。我猜计时器概念是正常的,如果进程每隔5,10分钟运行一次)
请指点我......
答案 0 :(得分:0)
最好的方法是使用Quartz.Net
这是一个使用它的好例子:
http://www.mikesdotnetting.com/article/254/scheduled-tasks-in-asp-net-with-quartz-net
答案 1 :(得分:0)
我想你已经拥有了一个数据库。使用名为LastRun的单个日期时间字段创建一个表。在此字段中保存方法执行的最后日期和时间。
在Session Start或on Application上的MVC应用程序中,将LastRun datetime与当前日期时间进行比较,并决定是否要执行上述方法。执行该方法后,更新LastRun值。