私はJavaサーブレットアプリケーション+休止状態+ストリーミングサーバーを持っています
フロー:
- ユーザー ログイン ビデオ ストリーミングを開始する
- データベース内の abonament 分を 2 秒ごとに減らします
- 分 < 0 の場合、新しい分のリクエストを送信します (応答は時間がかかる場合があります。その場合は、デクリメントを続けます)
問題:
データの一貫性の問題が表示されます。つまり、分の減少中に表示されます。例:user.setMinutes(user.getMinutes() - 2)
新しい議事録応答によって行われた変更が表示されない場合があり、議事録が破損します。
新しい休止状態のトランザクションを作成し、議事録を変更するたびにそれをコミットすることが解決策になると思いましたが、これはうまくいきませんでした:
Transaction t = session.beginTransaction();
user.setMinutes()
session.flush();
t.commit();
質問:
各変更が最新のデータを取得するときに、この問題を解決するにはどうすればよいですか?