我正在尝试编写一个网站,现在我需要每月一个特定的方法(每个月末)。
想象一下,该方法是Method A()
。
我想在每个月末运行它。
那么现在该怎么运行呢?
更新
网站的使命是别的。只是在其中的一部分,我需要这样做。
我不知道,但我想可能在每月月底的应用程序启动时运行该方法可以解决它,但我不确定它的方式与否。
答案 0 :(得分:4)
ASP.NET MVC用于编写Web应用程序,而不是计划任务。
Web应用程序被设计为请求/响应系统。它们不适合需要定期进行的后台任务。他们收到请求,回复该请求,并完成。空闲时,Web应用程序受Web服务器的资源管理限制,这可能包括在等待下一个请求时完全关闭它。
相反,您要使用的是Windows服务或控制台应用程序(由任务计划程序调用,例如Windows附带的那个)。这将分别在后台或定期间隔连续运行。这个应用程序可以非常小,只需调用一个方法而不是其他方法。
简而言之......如果您想要响应用户请求运行代码,那么Web应用程序就可以完成这项工作。如果您想定期运行代码而不考虑用户请求,那么计划任务就是您想要的。
答案 1 :(得分:2)
嗯,这似乎不属于网站。即它不应该在任何地方在ASP.NET中运行。也许它应该在后台运行,或者在后端运行的服务或数据库作业或计划任务。但是,如果你拥有的只是一个工作,那么按下按钮时可能会更容易调用方法A(),并将其放在网站的登录部分,并进行一些排序权限检查以确保没有人但是正确的人按下它。您还可以在方法中放置支票,以确保它每月只运行一次。如果您可以确定正在使用网站的其余部分,您可以在其他方法中使用CheckToSeeIfIShouldCallMethodA方法,但所有这些方法看起来都比在后端运行的方案更差。