たとえば、私がこのアルゴリズムを持っている場合:
- データベースに接続する
- データベースからいくつかのデータを選択してみてください
- データが存在しない場合
- どこかからデータを取得する
- データベースにデータを挿入します
- データベース接続を閉じる
- データで何かをする
- そして、私たちは完了です
次に、phpスクリプトが起動し、データベースにデータがない場合、おそらくデータの生成中に(ステップ3.1)、別のユーザーがスクリプトを再度起動します。次に、私はこのような何かがより良いと思います:
- データベースに接続する
- データベースからいくつかのデータを選択してみてください(エントリがロックされている場合、スクリプトはロックが解除されるまで待機します)
- データが存在しない場合
- データベースエントリをロックする
- どこかからデータを取得する
- データベースにデータを挿入します
- データベースエントリのロックを解除する
- データベース接続を閉じる
- データで何かをする
- そして、私たちは完了です
どうすればそのロックを行うことができますか?(私はSQLを初めて使用しますが、もっと適切な名前があるかもしれません)