我有一个系统可以在特定时间内向用户发送电子邮件。 内置于ASP.NET MVC4中,并且具有一个动作结果“函数”,用于检查消息的时间并在消息当天发送时发送它。如何在特定时间调用“Action Result”ASP.NET MVC(每日)
我怎样才能以有效的方式调用这个行为结果(日常) - 比如调度器?
谢谢。
我有一个系统可以在特定时间内向用户发送电子邮件。 内置于ASP.NET MVC4中,并且具有一个动作结果“函数”,用于检查消息的时间并在消息当天发送时发送它。如何在特定时间调用“Action Result”ASP.NET MVC(每日)
我怎样才能以有效的方式调用这个行为结果(日常) - 比如调度器?
谢谢。
虽然单独的服务/应用程序会更好,但您可以使用wget。
GNU Wget是一个免费的软件包,用于使用HTTP检索文件, HTTPS和FTP,最广泛使用的Internet协议。这是一个 非交互式命令行工具,所以它可以很容易地从 脚本,cron任务,终端被称为不带X-Windows的支持,等等
这样,你会做这样的事情:
"C:\Program Files (x86)\GnuWin32\bin\wget.exe" --no-check-certificate https://www.exammple.com/YouController/YourAction -O NUL
在.bat
文件中,并将其设置为在您需要的时间通过Windows计划任务运行(假设您不需要每60秒钟运行一次) - 如果这样做,让我知道,因为我有另一种方式这使用Windows服务来调用bat文件)。
省略-O NUL
部分也将保存输出,所以你可以看到,如果一切都做成功运行:
public ActionResult YourAction()
{
//Do your code, get some stats that show it ran properly.
return Content("Return your stats here.");
}
从您的控制器动作。
如果时间在一天,一小时和一分钟,我的意思是我想按特定时间发送邮件,EX:26/8/2016 03:44 pm? –
您可以将计划任务设置为执行此操作。将其设置为当时开始并且每24小时运行一次。你可以做的另一件事是在行动中添加一个检查,以确保时间是正确的,如果不是,睡一会儿。 – webnoob
当您将新应用程序创建为Windows服务时,效率更高。在那里你可以很容易地设置代码在特定时间开始。在这个解决方案中你将拥有更多的灵活性和独立性您可以开始租用:Windows Service to run a function at specified time
我肯定会创建一个单独的应用程序来发送电子邮件,并在服务器上设置一个计划任务来每天运行它。在这样的Web应用程序中设置定时器是有风险的。如果应用程序在一段时间内没有被访问,IIS可以卸载它并且随着它一起卸载它的日常任务。 – itsme86
如果你不是那么严格使用MVC动作,请checkout hangfire.io。这很棒。 http://hangfire.io – Developer