Mein Code istWie gleiche Anfragen filtern mit Laravel
public function store(Request $request){
$invite = Invite::where('hash', $request->input('invite_token'))->first();
if($invite->status != 'sent')
return;
$invite->update([
'status' => 'creating_test_instance'
]);
event(new CreatingTestInstance($invite));
$createTestInstanceJob = new CreateTestInstance($invite);
dispatch($createTestInstanceJob);
}
Wenn ich mehrere gleiche Anforderungen gleichzeitig senden werde die erste Anforderung nicht rechtzeitig Status zu aktualisieren erhalten und
if($invite->status != 'sent') return;
nicht angewendet werden und Testinstanz wird mehrmals erstellt. Ich kann nur eine Testinstanz auf einer Einladung haben. Wie könnte es geschützt werden? Implementiert es mit Datenbank-Transaktion, aber wenn Sie eine bessere Lösung haben sehr froh zu hören. Danke für die Antworten.
macht Wenn Sie die Anfragen gleichzeitig senden es geht um Konfliktthemen sein. Können Sie nicht steuern, wie viele Anfragen gesendet werden, und den Konflikt auf diese Weise steuern? – scottevans93
Ich habe getestet, zehn Anfragen gleichzeitig zu senden, drei von ihnen bestanden Prüfung. –
Warum sollte es zehn Anfragen für dieselbe Einladung geben? – scottevans93