2017-06-09 19 views
2

私はDjangoのソーシャルアナリティクスウェブサイトを構築しています。ここでデータベースから同時にオブジェクトを取り出す方法は?

は私use casesのいずれかです。

"Users" of the site analyze social media "profiles" (from Snapchat, Instagram, Twitter, etc...). 
Each social media "profile" is only analyzed once (and not more). 

私はキューにprofilesを取得SQLクエリを持っています。例えば、(私はこのクエリ5回繰り返すとき)返される最初の5profilesは、次のとおりです。userprofilexmax123を分析した後

xmax123, darcy67, shop_hallmary10, christmas_shop987, lilybend_09 

xmax123は、もはや分析するために、他のusersため表示されません。複数users呼び出しは、このSQLクエリ同時に、同じソーシャルメディアprofilexmax123)は、すべてのusersのために戻されたときに

私の問題はあります。つまり、2つのusersuser 1user 2)がこのSQLクエリを同時に呼び出すと、両方とも同じソーシャルメディアprofilexmax123)が返されます。これは、が2異なるusersで2回分析されることを意味します。これは問題です。

私は、user 1xmax123user 2darcy67を取得し得るようにしたい場合でも、両方usersコール同時にこのSQLクエリ。この問題を処理するための戦略は何ですか?

答えて

0

また、ユーザーにクエリを実行した後に「完了」とマークすると、他のユーザーがそのユーザーで作業している場合でもユーザーは他のユーザーに引き続き利用できるため、「作業中」のブール値フィールドだから誰かがそれで働いているときにそれをロックすることができます..

+0

これは私の状況のた​​めの最良の戦略だと思う。これは本当に創造的です。ありがとう! – ttmtran

1

mutexを利用してアクセスを制限することができます。

コードベースが表示されていないと、どこに配置するのか正確にはわかりません。これを使用して、一度に1人のユーザーしか照会できないようにアクセスをロックすることができます。次に、1人のユーザーが照会した後でmutexを解放し、次のユーザーがDBにアクセスできるようにします。

関連する問題