問題: GAEデータストア内のエンティティを永続化しない場合は、そのエンティティを永続化する必要があります。GAE環境内の複数のJVMインスタンスとのJavaの同期
私のコードのアルゴリズムは、次のとおりです。
select * from Employee where code=1234;
if record not found then:
persist it;
otherwise
do nothing;
それを行うのは非常に簡単だが、それは、マルチスレッド環境での複雑されます。ここで問題は、2つのスレッドが上記のクエリを同時に実行しようとしている場合に発生します。どちらもnull
となり、両方のスレッドが永続エンティティになります。だから1つではなく、2つのレコードがデータベースに作成されています ここで私は完全なメソッドを同期しましたが、GAE envのjvmの複数のインスタンスのために動作しません。
私に適切な解決策を提案してください。 私のテクノロジースタック:
java、Spring、REST、GAEデータストア。
擬似SQLを表示して[タグ:google-cloud-datastore]がサポートしていないため、[tag:google-cloud-datastore]または[tag:google-cloud-sql]を使用していますか?関係のないタグでタグをスパムしたため、何を求めているのかは不明です。どうか明らかにしてください。 –
私はgoogle-cloud-datastoreを使用しています。Psuedo Sqlは私の必要条件を説明するためのものです。 –