Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

प्ले जावा में डीबी थ्रेडपूल कैसे बनाएं और इस पूल के साथ डीबी प्रश्न बनाएं

सबसे पहले, आपको ThreadPoll Configuration docs पर एक नज़र डालनी चाहिए। , अगर आपने अभी तक ऐसा नहीं किया है। यह आपको थ्रेड पूल का एक सिंहावलोकन देना चाहिए Play डिफ़ॉल्ट रूप से उपयोग करता है और उन्हें कैसे ट्विक करना है (आपको केवल क्वेरी करने के लिए एक विशिष्ट थ्रेड पूल की आवश्यकता नहीं हो सकती है...)।

इसमें जेडीबीसी संचालन के लिए अनुकूलित थ्रेड पूल को कॉन्फ़िगर करने के सुझावों सहित कई युक्तियां शामिल हैं।

अब, अपने प्रश्न के संबंध में, आपको बस supplyAsync . का उपयोग करना होगा एक कस्टम ExecutorService . के साथ आपको जो चाहिए वह करने के लिए। एक उदाहरण:

public CompletionStage<Result> getData() {
    CompletableFuture<List<SqlRow>> cf = new CompletableFuture<>();
    return cf.supplyAsync(() -> {
        return Ebean.createSqlQuery("SELECT * FROM Users").findList();
    }, ec) // <-- 'ec' is the ExecutorService you want to use
    .thenApply(rows -> {
       return ok(Json.toJson(rows));
    }); 
}

ध्यान दें कि आपके कोड से, आप ExecutionContext . प्राप्त करने के लिए अक्का का उपयोग कर रहे हैं (स्काला), और supplyAsync एक Executor/ExecutorService की अपेक्षा करता है (जावा)। तो आपको अपना ServiceExecutor बनाना होगा अपने आप से और इसे साझा करें

// Thread pool with 10 threads
ExecutorService ec = Executors.newFixedThreadPool(10);

या आपको उनके बीच कनवर्ट करना होगा। यह सार आपको इसे हासिल करने में मदद करनी चाहिए




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हेडर पहले ही फ्लश फ़ंक्शन के माध्यम से भेजे गए हैं?

  2. MySQL:अल्पविराम से अलग की गई सूची को कई पंक्तियों में विभाजित करें

  3. Xampp और MySQL प्रारंभ नहीं हुआ

  4. हिस्टोग्राम प्लॉट के लिए डेटा प्राप्त करना

  5. डॉलर चिह्न के साथ राशियों का योग