Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

स्प्रिंग एप्लिकेशन में लेन-देन के अंदर Async का उपयोग करना

एम। डीनम का उत्तर अच्छा है लेकिन इसे प्राप्त करने का एक और तरीका है जो आपके वर्तमान आवेदन की स्थिति के आधार पर आपके मामले में आसान हो सकता है।

आप कॉल को एसिंक विधि में बस उस घटना में लपेट सकते हैं जिसे आपके वर्तमान लेनदेन के बाद संसाधित किया जाएगा ताकि आप हर बार डीबी से अद्यतन इकाई को सही ढंग से पढ़ सकें।

ऐसा करना बहुत आसान है, मैं आपको दिखाता हूँ:

import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;

 @Transactional
public void doSomething() {

    // application code here

    // this code will still execute async - but only after the
    // outer transaction that surrounds this lambda is completed.
    executeAfterTransactionCommits(() -> theOtherServiceWithAsyncMethod.doIt());

    // more business logic here in the same transaction
}

private void executeAfterTransactionCommits(Runnable task) {
    TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
        public void afterCommit() {
            task.run();
        }
    });
}

मूल रूप से यहां क्या होता है कि हम वर्तमान लेनदेन कॉलबैक के लिए एक कार्यान्वयन की आपूर्ति करते हैं और हम केवल बाद की विधि को ओवरराइड करते हैं - वहां अन्य विधियां हैं जो उपयोगी हो सकती हैं, उन्हें देखें। और उसी बॉयलरप्लेट कोड को टाइप करने से बचने के लिए यदि आप इसे अन्य भागों में उपयोग करना चाहते हैं या बस विधि को और अधिक पठनीय बनाना चाहते हैं जिसे मैंने एक सहायक विधि में निकाला है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस में कई हैश प्राप्त करने का सबसे प्रभावी तरीका?

  2. पाइथन में रेडिस बनाम मेमोरी से बेंचमार्किंग पुनर्प्राप्ति (टाइमिट का उपयोग करके)

  3. अद्यतन सेवा स्टैक रेडिस सूची

  4. क्या एक्शन केबल 5 को रेडिस की आवश्यकता है?

  5. नोड में रेडिस का उपयोग करके हैश कुंजी के सभी फ़ील्ड और मान प्राप्त करें