Rumah >pembangunan bahagian belakang >tutorial php >Menguruskan permintaan serentak dengan menyekat sesi Laravel
Memahami sesi menyekat
Route::post('/endpoint', function() { // Application logic here })->block($lockSeconds = 5, $waitSeconds = 10);Permohonan dunia nyata: Pemprosesan Pembayaran
<?php namespace App\Http\Controllers; use App\Models\Payment; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Exceptions\PaymentException; class PaymentController extends Controller { public function process(Request $request) { return DB::transaction(function() use ($request) { // Verify payment existence and unprocessed status $payment = Payment::findOrFail($request->payment_id); if ($payment->isProcessed()) { throw new PaymentException('Payment already processed.'); } // Initiate payment processing $result = $this->paymentGateway->charge([ 'amount' => $payment->amount, 'currency' => $payment->currency, 'token' => $request->payment_token ]); $payment->markAsProcessed($result->transaction_id); return response()->json([ 'status' => 'success', 'transaction_id' => $result->transaction_id ]); }); } } // routes/api.php Route::post('/payments/process', [PaymentController::class, 'process'])->block(5, 10);Pelaksanaan halus ini:
Atas ialah kandungan terperinci Menguruskan permintaan serentak dengan menyekat sesi Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!