3

特定のレコードを選択して更新するテーブルがあります。このジョブを実行するために、2 つの個別のプログラムを実行したいと考えています。
このテーブルは、コンテストのプログラム提出物を格納するものです。最初はで、後で などに変更されるsubmission属性があります。したがって、私のプログラムは、ステータスが のレコードを読み取り、評価します。 このプログラムを 2 つの別々の端末で実行すると、. ステータス付きのレコードを読み取る場合、提出の再評価を意味するため、読み取りたくありません.これは、並列評価の目的を無効にします.また、読み取ったレコードにロックを設定すると、問題が解決します。しかしその後statusQueuedWrong AnswerAcceptedQueued

program_1 and program_2program_1Queuedprogram_2program_1program_2program_1 が送信を評価している場合でも、ロックが解放されるのを待たなければならない場合があり、ロックが解放された後は、ロックprogram_2はこの送信とは何の関係もありません。これQueuedは、 によって既に評価されている状態とは別のものになるprogram_1ためです。何とか並行評価。
この問題を回避するにはどうすればよいですか??

4

1 に答える 1