Saya ingin tahu apakah ada cara untuk melakukan panggilan asinkron ke database?
Misalnya, bayangkan saya memiliki permintaan besar yang membutuhkan waktu sangat lama untuk diproses, saya ingin mengirim permintaan dan menerima pemberitahuan ketika permintaan akan mengembalikan nilai (dengan melewati Pendengar / panggilan balik atau sesuatu). Saya tidak ingin memblokir menunggu database untuk menjawab.
Saya tidak menganggap bahwa menggunakan kumpulan thread adalah solusi karena tidak skala, dalam kasus permintaan bersamaan yang berat ini akan menelurkan sejumlah besar thread.
Kami menghadapi masalah semacam ini dengan server jaringan dan kami telah menemukan solusi dengan menggunakan panggilan sistem select / poll / epoll untuk menghindari satu utas per koneksi. Saya hanya ingin tahu bagaimana caranya memiliki fitur yang mirip dengan permintaan basis data?
Catatan: Saya sadar bahwa menggunakan FixedThreadPool mungkin merupakan solusi yang baik, tetapi saya terkejut bahwa tidak ada yang mengembangkan sistem yang benar-benar tidak sinkron (tanpa menggunakan utas tambahan).
Pembaruan ** **
Karena kurangnya solusi praktis nyata, saya memutuskan untuk membuat perpustakaan (bagian dari finagle) sendiri: finagle-mysql . Ini pada dasarnya menerjemahkan / menerjemahkan permintaan / respons mysql, dan menggunakan Finagle / Netty di bawah tenda. Ini berskala sangat baik bahkan dengan sejumlah besar koneksi.