在后台运行一个方法每小时C#

时间:2016-07-03 07:49:17

标签: c# session asp.net-web-api

我正在写一个web-api,我计划存储"会话"那里的数据。我想每小时调用一个方法来确保非活动会话结束。

数据库包含3个时间戳字段。 Session_Start,Session_End和Last_Activity。每次更新会话中的数据时,Last_activity字段都会更新。

我写了一个方法来结束非活动会话,但是如何在后台每小时调用该方法,而不会干扰webapi的功能(如何在后台运行代码并仍允许人们使用的WebAPI)?

2 个答案:

答案 0 :(得分:-1)

听起来像一个次要线程,睡眠唤醒生命周期为一小时应该可以解决问题。你考虑过吗? 在我不久前的一个项目中,我有同样的辩论。我们最终编写了一个刷新方法,并在每次加载某个表单时调用它,并在检查时间时执行代码。有点横向,但在项目的范围内是可以接受的。

答案 1 :(得分:-1)

我想你可以使用一个Timer。

aTimer = new System.Timers.Timer(new System.TimeSpan(1,0,0).Milliseconds);
aTimer.Elapsed += ClearSessions;
aTimer.AutoReset = true;
aTimer.Enabled = true;