如何在经过一段时间后重置数据库值.Net MVC c#
本文关键字:数据库 Net MVC 置数据 经过 一段时间 | 更新日期: 2023-09-27 18:11:49
我遇到了一个问题,不知如何解决。我希望用户从下拉菜单更改存储到数据库的值。经过一段时间后(比如1小时),我希望将该值重置为默认值。我是否必须编写一个服务,它位于服务器上,并在值更改时激活?真的不知道从哪里开始,因此寻找解决方案
这听起来像是Revalee的完美用例。Revalee,一个开源项目,是一个允许你安排回调到你的web应用程序的服务。Revalee使用Windows服务管理任务持久性和调度,但利用ASP。. NET MVC应用程序来处理所需的处理(在您的情况下是重置数据库值)。
要使用Revalee,您可以:
-
在您的服务器上安装Revalee服务,一个Windows服务。Windows Service的源代码(你可以自己编译),Revalee网站上提供的预编译版本,或者可以通过Chocolatey轻松安装。
-
在Visual Studio项目中使用Revalee客户端库。客户端库可以在源代码中获得(同样,您可以自己编译),或者通过NuGet提供预编译版本。
-
要注册回调(在本例中使用Revalee的客户端库),您需要在ASP中包含一个类似于以下的方法。NET MVC应用程序。当用户最初存储"可重置"值时,将调用该函数:
private void ScheduleReset(int userId) { // The callback will be 1 hour from now DateTimeOffset callbackTime = DateTimeOffset.Now.AddHours(1.0); // The callback URL will include the user ID Uri callbackUrl = new Uri( string.Format( "http://mywebapp.com/Schedule/Reset/{0}", userId ) ); // Register the callback request with the Revalee service RevaleeRegistrar.ScheduleCallback(callbackTime, callbackUrl); }
-
当
Reset
动作在一小时内被调用(包含用户的ID),那么你的应用程序将重置该用户的存储值为其首选的默认值。
Revalee项目网站有一个完整的API参考以及如何安装和配置Windows服务的说明。
我希望这对你有帮助。好运!
免责声明:我是参与Revalee项目的开发者之一。然而,需要明确的是,Revalee是免费的开源软件。源代码可以在GitHub上找到
这似乎是一个有多个"正确"答案的设计决策。
我可能会在记录中添加一个字段,该字段有一个datetime,用于存储项目更改的日期。批处理作业然后定期运行,挑选那些自上次运行时以来已经过期的记录,然后将它们更改回来。