Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara membuat db threadpool di Play java dan membuat kueri db dengan kumpulan ini

Pertama-tama, Anda harus melihat dokumen Konfigurasi ThreadPoll , jika Anda belum melakukannya. Ini akan memberi Anda gambaran umum tentang kumpulan utas yang digunakan Play secara default dan cara mengubahnya (Anda mungkin tidak memerlukan kumpulan utas khusus hanya untuk melakukan kueri...).

Ini berisi banyak kiat, termasuk kiat untuk mengonfigurasi kumpulan utas yang dioptimalkan untuk operasi JDBC.

Sekarang, mengenai pertanyaan Anda, Anda hanya perlu menggunakan supplyAsync dengan ExecutorService khusus untuk melakukan apa yang Anda butuhkan. Contoh:

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

Perhatikan bahwa dari kode Anda, Anda menggunakan Akka untuk mendapatkan ExecutionContext (Scala), dan supplyAsync mengharapkan Executor/ExecutorService (Jawa). Jadi, Anda harus membuat ServiceExecutor sendiri dan bagikan

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

atau Anda harus mengonversi di antara mereka. Intinya akan membantu Anda mencapainya




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump dengan --where klausa tidak berfungsi

  2. SQLException:Tidak dapat mengambil server status hanya-baca transasi

  3. Tipe data MySQL apa yang harus digunakan untuk Lintang/Bujur dengan 8 tempat desimal?

  4. Kinerja MySQL BIGINT(20) vs Varchar(31)

  5. Cara Instal MySQL 8.0 di CentOS 8 / RHEL 8