私はこの問題を解決するためにいくつかのリソースを見つけましたが、私のニーズに合うようにすべての要素を混ぜ合わせることはできません。シングルトンBeanの複数のユーザーの行動を追跡する
Cat
(または複数の場合もあります)は、他のユーザーからの嫌がらせを「ロック」したいと思っています。また、呼び出し元にフィードバックを提供し、APIの前に誰が呼び出しているかを伝えたいと思っています。
@Local
@Singleton // or @Stateful?
public class CatPetterBean_Local implements CatBean_Facade
{
/**
* Key - The ID of the Cat
*/
final private ConcurrentHashMap<Integer, User> pettingState = new ConcurrentHashMap<>();
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@Override
public GzipROWithMsg<Object> pet(final ImmutableSet<Integer> catIds)
{
checkIfTheyAreBeingPetted_AndThrowRuntimeExec(catIds);
<...>
// After petting, they will be saved by the caller bean (e.g. CatPetterBeanImpl)
}
<...>
}
- ペッティングは
Cat
の時間がかかるDB状態を保持:ALREADY_PETTED
とNOT_PETTED
。それがすでに叩かれたら、再び撫でることはできません。私はDBからCat
をロードし、その状態をオンザフライでチェックすることさえ考えましたが、それはそのようなネットワークトラフィックが多いと思います。私はキーワードのような概念を利用することができますどのよう- 、
@Lock
注釈 - いいえ、私は春
- を使用していないいいえ、これはWebアプリケーション
- ではありませんはい、私は不足のEEの知識を行います。私はこの問題を早期学習の過程で尋ねています。