1
私はPHP 7.1とSymfony 3.2でサーバーAPIを休止しています。私は、ユーザーがドラフトを持っているかどうかをチェックし、ドラフトを持っていない場合は作成したドラフトを要求します。この問題は、同じユーザーが2つの同時要求を行う場合に発生します。両方の要求が検証に合格し、ユーザーに下書きがないことがわかります。最初に到着するとドラフトが作成され、後で到着するドラフトはそのドラフトを作成しようとし、教義の例外をスローします。同時リクエスト(PHPとSymfony)のEvadeデータベースエラー
[Exception]: Doctrine \ DBAL \ Exception \ UniqueConstraintViolationException
[message]: An exception occurred while executing 'INSERT INTO ChecklistDraft (id, title, description, estimated_time, creator_id) VALUES (?,?,?,?)' with params [101, null, null, null, 50121] :
SQLSTATE [23000]: Integrity constraint violation: 1062 Duplicate entry '50121' for key 'UNIQ_910CB4B461220EA6' .
[file]: /project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php .
サーバは500を返しますが、これは発生しません。私はすべての要求で例外を制御することができますが、別の要求でコードが間違っていて例外がスローされた場合は通知されません。