我必须free demo
在我的应用程序中为最终用户提供一些服务。免费演示可能是30 mins, 1 hours, 5 hours
等 ( predefined time
) 为新用户一次。
用户也可以部分地消耗这些时间。就像在 30 分钟的免费演示中一样,他们可以使用今天的 10 分钟、明天的 15 分钟和第二天的其余时间等。现在,如果用户选择 30 分钟的免费演示并登录并使用该服务。我可以通过他的开始时间和结束时间限制用户 30 分钟。如果开始和结束时间的总和等于 30 分钟,我可以将它们发送到付款页面。
现在问题出现在一些不确定的情况下,例如用户在活动会话期间关闭浏览器或他们的互联网停止工作或其他任何事情。在此,由于缺少结束时间,我无法计算他们消耗的时间。
场景可能如下所示(30 分钟演示)。
UserID StartTime EndTime Consumed(mins)
10 09-04-2015 10:00 09-04-2015 10:10 10
10 10-04-2015 05:00 10-04-2015 05:04 4
10 11-04-2015 07:46 11-04-2015 07:56 10
10 11-04-2015 10:00 // Browser closed or any uncertain condition
10 11-04-2015 11:00 // How to restrict user to use actual 30 mins because I do not have EndTime in above row to calculate Consumed mins.
我可能同时有超过 100000 个用户使用我们的服务,所以我正在为此寻找一个有效的解决方案。
据我了解,我可以创建一个单独的作业来检查用户的 LastActiviteTime,并在此基础上更新他们在数据库中的 Consumed(mins)。该作业将每分钟执行一次,另一方面,每个会话用户的浏览器都会更新LastActiveTime
数据库。
这可以解决我的问题,但我不太确定我的应用程序的性能,因为每分钟有大量的数据库请求。