Concurrency - Bagaimanakah pemalam nginx melaksanakan operasi yang memakan masa dengan cara yang tidak menyekat?
phpcn_u1582
phpcn_u1582 2017-05-16 17:12:26
0
1
474

Penerangan masalah:

nginx semua orang tahu bahawa sebab prestasi hebatnya adalah berdasarkan asas tak segerak dan tidak menyekat Oleh itu, apabila membangunkan pemalam nginx untuk mengendalikan permintaan rangkaian, anda mesti ingat untuk melakukan operasi yang memakan masa tertentu dengan cara menyekat. Jika tidak, ia akan menjejaskan prestasi nginx secara serius...

Soalan ini timbul: Bagaimana jika saya ingin melakukan beberapa operasi yang memakan masa dalam pemalam? Sebagai contoh, menanyakan pangkalan data (pangkalan data tidak menyokong protokol http, terdapat protokol khas)?

ps: Saya boleh membuka kumpulan benang dan membuang operasi menyekat ini ke dalam kumpulan, tetapi adakah terdapat sebarang cara untuk menggantung pemprosesan permintaan semasa kepada baris gilir acara rangka kerja nginx? Apabila menukar status dihantar dalam fungsi panggil balik operasi menyekat, biarkan nginx meneruskan memproses permintaan sebelumnya?

Terima kasih

phpcn_u1582
phpcn_u1582

membalas semua(1)
迷茫

Pertanyaan pangkalan data pada asasnya ialah komunikasi rangkaian Pada asasnya, selagi soket anda membaca dan menulis tidak disekat, tidak akan ada masalah. Ini lebih mudah diucapkan daripada dilakukan. nginx sendiri mempunyai beberapa mekanisme yang boleh diguna semula untuk melaksanakan pelbagai operasi tidak menyekat pada http. Walau bagaimanapun, komunikasi seperti tcp mungkin tidak tersedia. Anda perlu menulisnya sendiri, yang saya rasa lebih rumit, dan ia juga perlu disepadukan ke dalam nginx.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan