我对如何解决遇到的问题深感困惑。我希望用户从下拉列表中更改存储到数据库的值。经过一段时间(例如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上可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句