c# - 如何每 24 小时在 Asp.net MVC 中执行一个方法

标签 c# asp.net-mvc scheduled-tasks scheduler

我有类似 MVC 的方法

 public void Sendmails()
 {
     //sending mails for every 24 hours.
 }

我可以安排上述方法每 24 小时执行一次吗? 我知道我们可以使用 sql server agent 和 windows task scheduler 设置时间表。 但是由于一些问题我只想执行当前的 dll,这在 MVC 中可能吗?

最佳答案

可能吗?也许,在调用任务和后台线程方面有一些技巧。 可靠吗?一点也不可靠。

Web 应用程序本质上是一个请求-响应系统。应用程序接收请求、执行其逻辑并返回响应。除此之外,它是空闲的。如果网络服务器想要使用或释放​​该内存,则完全由网络服务器从内存中卸载。

要在没有用户交互的情况下定期运行某些东西(也就是说,没有启动它的请求),Web 应用程序不是您想要的。相反,您正在寻找 Windows 服务或简单的控制台应用程序,这些应用程序被主机系统的计划软件(Windows 任务计划程序、cron 等)计划为定期运行。

当然,这些应用程序可以轻松共享代码。它们可以在同一个解决方案中并引用同一个类库。实际上,您的代码的应用程序层应始终尽可能轻薄,并且所有有意义的代码都应位于共享的业务逻辑程序集中。然后任何应用程序(Web 应用程序、Windows 服务、控制台应用程序等)都可以简单地引用这些共享程序集并调用相同的逻辑。

此外,多个运行的应用程序也可以轻松共享相同的数据。它们都可以连接到同一个数据库(当然,使用共享数据访问逻辑),并且在其他方​​面本质上是集中式逻辑的相同表示,恰好由单独的应用程序实例调用。

关于c# - 如何每 24 小时在 Asp.net MVC 中执行一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24536751/

相关文章:

java - Openshift cron 执行 servlet - 计划作业

java - 如何在运行时更改 Spring 的 @Scheduled fixedDelay?

c# - 隐式调用父构造函数

javascript - 将ViewBag数据传递给requirejs或knockout

asp.net-mvc - MVC下Forms Authentication中ReturnUrl内保留Url Fragment

c# - Jquery ajax 完整未获取自定义响应 header ?

java以伪 'fixed'速率安排可调用(例如钟形曲线分布)

c# - 自定义列表到数组数组

c# - 防止多次重复数据输入实体数据库(关闭)

c# - 用于在解决方案中快速搜索文件的 Visual Studio 插件