"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > लारवेल सत्र अवरुद्ध के साथ समवर्ती अनुरोधों का प्रबंधन

लारवेल सत्र अवरुद्ध के साथ समवर्ती अनुरोधों का प्रबंधन

2025-03-23 ​​पर पोस्ट किया गया
ब्राउज़ करें:446

Managing Concurrent Requests with Laravel Session Blocking

] यह समवर्ती संचालन के दौरान डेटा अखंडता सुनिश्चित करता है।

] ]

]

एक गैर-कुकी-आधारित सत्र चालक।

निम्न कोड स्निपेट अपने मूल उपयोग को प्रदर्शित करता है:
  • मार्ग :: पोस्ट ('/समापन बिंदु', फ़ंक्शन () { // एप्लिकेशन लॉजिक यहाँ })-> ब्लॉक ($ Lockseconds = 5, $ WaitSeconds = 10);
  • ] ]
  • php Namespace App \ HTTP \ कंट्रोलर; App \ मॉडल \ भुगतान का उपयोग करें; Illuminate \ http \ अनुरोध का उपयोग करें; Illuminate \ support \ facades \ db का उपयोग करें; App \ Essptracts \ PaymentException का उपयोग करें; क्लास पेमेंटकंट्रोलर कंट्रोलर का विस्तार करता है { सार्वजनिक कार्य प्रक्रिया (अनुरोध $ अनुरोध) { रिटर्न DB :: लेन -देन (फ़ंक्शन () उपयोग ($ अनुरोध) { // भुगतान अस्तित्व और असंसाधित स्थिति को सत्यापित करें $ भुगतान = भुगतान :: findorfail ($ अनुरोध-> भुगतान_आईडी); if ($ भुगतान-> isprocessed ()) { नया भुगतान एक्ससेप्शन ('पहले से संसाधित भुगतान।') फेंक दें; } // भुगतान प्रसंस्करण शुरू करें $ परिणाम = $ यह-> भुगतानगेटवे-> चार्ज ([[ 'राशि' => $ भुगतान-> राशि, 'मुद्रा' => $ भुगतान-> मुद्रा, 'टोकन' => $ अनुरोध-> भुगतान_टोकन ]); $ भुगतान-> markasprocessed ($ परिणाम-> Transaction_id); वापसी प्रतिक्रिया ()-> json ([[ 'स्थिति' => 'सफलता', 'Transaction_id' => $ परिणाम-> Transaction_id ]); }); } } // मार्ग/api.php मार्ग :: पोस्ट ('/भुगतान/प्रक्रिया', [भुगतानकंट्रोलर :: क्लास, 'प्रक्रिया'])-> ब्लॉक (5, 10);
यह परिष्कृत कार्यान्वयन:

Route::post('/endpoint', function() {
    // Application logic here
})->block($lockSeconds = 5, $waitSeconds = 10);

लॉक अधिग्रहण के लिए 10-सेकंड का टाइमआउट थोपता है।

परमाणु के लिए डेटाबेस लेनदेन का लाभ उठाता है।

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);

]

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3