SQL Server 2014に対してEntity Framework 6を使用すると、StatusIdが1の処理対象項目のリストが取得されます。各項目が処理されると、ステータスが2それは再び処理されません。処理には数分かかることがあります。キュー項目が2回処理されないようにする方法
しかし、これはいわゆる「スレッドセーフ」ではありません。言い換えれば、最初のコードが完了する前にコードが再度開始された場合(つまり別のプロセスによって)、アイテムのステータスは1のままなので、再びキューに入り、2回目の処理が行われます。
レコードを処理するようにするには、どうすればよいのですか。レコードが2度目に取り出されないようにするにはどうすればよいですか?たとえば、トランザクション内のデータを取得してステータスを更新することは可能ですか?
。 – entropic
'lock'や' DbContext.Database.BeginTransaction() 'ですか? –
@entropic私はその考えをトランザクションと組み合わせて好きです。 –