2

我正在尝试编写一个网站,现在我需要每个月(在每个月底)做一个特定的方法。

想象一下,方法是Method A()

我想在每个月底运行它。

那么现在如何运行呢?

更新:

网站的使命是另外一回事。只是其中一部分我需要这样做。

我不知道,但我想也许在每个月底开始在应用程序中运行该方法可以解决它,但我不确定它是否可行。

4

2 回答 2

4

ASP.NET MVC 用于编写 Web 应用程序,而不是计划任务。

Web 应用程序被构建为请求/响应系统。它们不适合需要定期执行的后台任务。他们收到请求,响应该请求,然后完成。空闲时,Web 应用程序受制于 Web 服务器的资源管理,这可能包括在等待下一个请求时将其完全关闭。

相反,您将要使用的是 Windows 服务或控制台应用程序(由任务调度程序调用,例如 Windows 附带的调度程序)。这将分别在后台或定期运行。这个应用程序可以非常小,只调用一个方法,没有别的。

简而言之...如果您想运行代码以响应用户请求,那么 Web 应用程序将完成这项工作。如果您想定期运行代码而不考虑用户请求,那么计划任务就是您想要的。

于 2013-08-27T13:02:02.487 回答
2

嗯,这似乎是不属于网站的东西。即它不应该在任何地方的 ASP.NET 中运行。也许它应该在后台运行,或者在后端运行的服务或数据库作业或计划任务中运行。但是,如果您只有一份工作,那么拥有一个按钮可能会更容易,当按下该按钮时会调用方法 A(),并将其放在网站的登录部分中,并进行某种权限检查以确保除了正确的人按下它。您还可以在方法中进行检查,以确保它每月只运行一次。如果您可以确定网站的其余部分正在被使用,您可以在其他方法中放入 CheckToSeeIfIShouldCallMethodA 方法,但所有这些似乎都比在后端运行的方法更糟糕。

于 2013-08-27T13:01:15.910 回答