我正在编写一个web-api,并计划在那里存储数据的“会话”。我想每小时调用一次方法以确保非活动会话结束。在后台每小时运行一个方法C#
数据库包含3个时间戳字段。 Session_Start,Session_End和Last_Activity。每次会话中的数据都会更新,Last_activity字段会更新。
我写了一个方法来结束非活动会话,但是如何在后台每小时调用一次该方法,而不会干扰webapi的功能(我如何在后台运行代码并仍然允许人们使用webapi)?
我正在编写一个web-api,并计划在那里存储数据的“会话”。我想每小时调用一次方法以确保非活动会话结束。在后台每小时运行一个方法C#
数据库包含3个时间戳字段。 Session_Start,Session_End和Last_Activity。每次会话中的数据都会更新,Last_activity字段会更新。
我写了一个方法来结束非活动会话,但是如何在后台每小时调用一次该方法,而不会干扰webapi的功能(我如何在后台运行代码并仍然允许人们使用webapi)?
听起来像一个辅助线程与一个小时的睡眠觉醒生活cycke应该做的伎俩。你有没有考虑过? 在我不久前的一个项目上,我进行了同样的辩论。我们最终编写了一个刷新方法,并在每次加载某个表单时调用它,并在检查时间后执行代码。有点横向,但在项目范围内是可以接受的。
我想你可以只使用一个计时器。
aTimer = new System.Timers.Timer(new System.TimeSpan(1,0,0).Milliseconds);
aTimer.Elapsed += ClearSessions;
aTimer.AutoReset = true;
aTimer.Enabled = true;