Koneksi Pool Direfaktor
Contents
[
Hide
]
Dengan rilis Aspose.Email 19.3, pool koneksi telah direfaktor. Baru EmailClient kelas telah diperkenalkan yang pada akhirnya akan menggantikan CredentialsByHostClient kelas. The EmailClient kelas menyediakan sebuah ConnectionAsgmtMode properti yang menentukan mode alokasi koneksi dalam lingkungan multithread. EmailClient.ConnectionAsgmtMode diatur menggunakan ConnectionAsgmtType enumerable.
Tipe Koneksi
Ada tiga tipe koneksi berikut:
- Koneksi utama: Ini adalah koneksi yang dibuat dan dibuang bersama dengan klien mail. Tidak dapat dibuat atau dibuang secara manual.
- Koneksi default: Pengguna dapat membuat koneksi default untuk thread dengan CreateConnection metode. Jika koneksi default ada, semua metode klien email yang dijalankan dalam sebuah thread akan secara implisit menggunakan koneksi ini. Hanya satu koneksi default yang dapat ada per thread. Koneksi dapat dibuat secara manual atau otomatis. Itu tergantung pada properti EmailClient.ConnectionAsgmtMode. Koneksi ini dapat dibuat secara manual dengan EmailClient.CreateConnection(createAsDefaultConnection = true) metode. Jika koneksi default tidak digunakan (tergantung pada mode alokasi koneksi), koneksi utama digunakan secara implisit menggantinya.
- Koneksi independen: Ini adalah koneksi yang tidak terhubung ke thread. Mereka dapat dibuat secara manual dan harus digunakan secara eksplisit sebagai parameter metode. Koneksi ini dapat dibuat secara manual dengan EmailClient.CreateConnection() metode atau EmailClient.CreateConnection(createAsDefaultConnection = false) metode.
Tipe Alokasi Koneksi
Untuk mengatur EmailClient.ConnectionAsgmtMode properti, ConnectionAsgmtType enumerable digunakan. Tipe alokasi yang disediakan oleh ConnectionAsgmtType didaftar di bawah ini.
- ConnectionAsgmtType.UseMainOrDefault Mode ini digunakan secara default pada klien email. Klien email menggunakan koneksi utama untuk semua operasi dari banyak thread jika koneksi default belum dibuat, atau jika sebuah koneksi belum diberikan secara eksplisit sebagai parameter metode. Koneksi utama adalah koneksi yang dibuat bersamaan dengan klien email. Pengguna dapat membuat koneksi default untuk thread dengan CreateConnection metode. Jika koneksi default untuk sebuah thread dibuat, ia digunakan secara implisit untuk semua metode klien email yang dipanggil dalam thread tersebut. Jika koneksi default untuk sebuah thread tidak dibuat, koneksi utama digunakan untuk semua metode klien email yang dipanggil dalam thread tersebut. Pengguna juga dapat membuat koneksi yang tidak terhubung ke thread (bukan koneksi default) dengan CreateConnection metode. Jika pengguna ingin menggunakan koneksi lain (bukan utama dan bukan default) ia harus menyampaikan koneksi ini secara eksplisit sebagai parameter metode yang ingin digunakannya. Pengguna dapat menambahkan membuat sejumlah koneksi. Koneksi default hanya boleh satu per thread. Harap catat bahwa koneksi default berfungsi dengan benar jika pengguna menggunakan objek Thread untuk pemrograman multitasking. Jika pengguna menggunakan ConnectionPool atau objek Task untuk pemrograman multitasking, mode ini dapat menyebabkan perilaku aplikasi yang salah. Untuk menghindari masalah ini, pengguna harus secara manual membuang koneksi default (jika ia menggunakannya) di akhir eksekusi kode.
- ConnectionAsgmtType.UseMain Klien email menggunakan koneksi utama untuk semua operasi dari banyak thread. Koneksi utama adalah koneksi yang dibuat bersamaan dengan klien email. Pengguna tidak dapat membuat koneksi default. Pengguna dapat membuat koneksi yang tidak terhubung ke thread (bukan koneksi default) dengan CreateConnection metode. Jika pengguna ingin menggunakan koneksi lain (bukan utama dan bukan default) ia harus menyampaikan koneksi ini secara eksplisit sebagai parameter metode yang ingin digunakannya.
- ConnectionAsgmtType.UseDefault Klien email secara implisit hanya menggunakan koneksi default untuk semua operasi dari banyak thread. Koneksi utama tidak digunakan dalam mode ini. Jika koneksi default belum dibuat untuk suatu thread (pemanggilan pertama metode klien email), klien email membuat koneksi default secara implisit untuk thread tersebut sebelum operasi pertama dijalankan. Pengguna tidak dapat membuat koneksi default untuk thread dengan CreateConnectionmetode karena mereka dibuat secara otomatis. Ketika koneksi default untuk sebuah thread dibuat, ia digunakan secara implisit untuk semua metode klien email yang dipanggil dalam thread tersebut. Pengguna juga dapat membuat koneksi yang tidak terhubung ke thread (bukan koneksi default) dengan CreateConnectionmetode. Jika pengguna ingin menggunakan koneksi lain (bukan utama dan bukan default) ia harus menyampaikan koneksi ini secara eksplisit sebagai parameter metode yang ingin digunakannya. Pengguna dapat menambahkan membuat sejumlah koneksi. Hanya satu koneksi default yang dapat digunakan per thread. Harap catat bahwa koneksi default berfungsi dengan benar jika pengguna menggunakan objek Thread untuk pemrograman multitasking. Jika pengguna menggunakan ConnectionPool atau objek Task untuk pemrograman multitasking, mode ini dapat menyebabkan perilaku aplikasi yang salah. Untuk menghindari masalah ini, pengguna harus secara manual membuang koneksi default di akhir eksekusi kode.