free demo
アプリケーションでエンドユーザーに何らかのサービスを提供する必要があります。などの無料デモ30 mins, 1 hours, 5 hours
( predefined time
) 新規ユーザーは 1 回限り。
ユーザーはその時間を部分的に消費することもできます。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.
同時に 100,000 人以上のユーザーがサービスを利用する可能性があるため、これに対する効率的なソリューションを見つけています。
私の理解では、別のジョブを作成してユーザーの LastActiviteTime を確認し、それに基づいてデータベースで Consumed(mins) を更新できます。そのジョブは毎分実行され、一方で各セッション ユーザーのブラウザはLastActiveTime
データベース内を更新します。
これで問題は解決しますが、1 分間に膨大な数のデータベース リクエストが発生するため、アプリケーションのパフォーマンスについてはよくわかりません。