Пул з'єднань реформований
Contents
[
Hide
]
З випуском Aspose.Email 19.3 пул з’єднань був реформований. Нові EmailClient введено клас, який зрештою замінить CredentialsByHostClient клас. The EmailClient клас забезпечує ConnectionAsgmtMode властивості, яка визначає режим розподілу з’єднань у багатопотоковому середовищі. EmailClient.ConnectionAsgmtMode встановлюється за допомогою ConnectionAsgmtType перелічуваний.
Типи з’єднань
Існують наступні три типи з’єднань:
- Основне з’єднання: це з’єднання створюється та знищується разом з поштовим клієнтом. Його не можна створювати або знищувати вручну.
- З’єднання за замовчуванням: користувач може створювати з’єднання за замовчуванням для потоків за допомогою CreateConnection метод. Якщо існує з’єднання за замовчуванням, всі методи клієнта, виконані в потоці, будуть неявно використовувати це з’єднання. На один потік може існувати лише одне з’єднання за замовчуванням. Воно може бути створене вручну або автоматично. Це залежить від властивості EmailClient.ConnectionAsgmtMode. Ці з’єднання можна створити вручну за допомогою EmailClient.CreateConnection(createAsDefaultConnection = true) метод. Якщо з’єднання за замовчуванням не використовується (залежно від режиму розподілу з’єднань), замість нього неявно використовується основне з’єднання.
- Незалежні з’єднання: це з’єднання, які не прив’язані до потоків. Їх можна створювати вручну і їх необхідно явно передавати як параметр методу. Ці з’єднання можна створити вручну за допомогою EmailClient.CreateConnection() метод або EmailClient.CreateConnection(createAsDefaultConnection = false) метод.
Типи розподілу з’єднань
Щоб налаштувати EmailClient.ConnectionAsgmtMode властивості, ConnectionAsgmtType перелічуваний тип використовується. Типи розподілу, надані ConnectionAsgmtType перераховані нижче.
- ConnectionAsgmtType.UseMainOrDefault Цей режим використовується за замовчуванням у клієнтах електронної пошти. Клієнт електронної пошти використовує основне з’єднання для всіх операцій з кількох потоків, якщо з’єднання за замовчуванням не створене, або якщо з’єднання не передано явно як параметр методу. Основне з’єднання — це з’єднання, створене одночасно з клієнтом електронної пошти. Користувач може створювати з’єднання за замовчуванням для потоків з CreateConnection метод. Якщо для потоку створено з’єднання за замовчуванням, воно використовується неявно для всіх методів клієнта електронної пошти, які викликаються в цьому потоці. Якщо з’єднання за замовчуванням для потоку не створено, використовується основне з’єднання для всіх методів клієнта, які викликаються в цьому потоці. Користувач також може створювати з’єднання, не прив’язані до потоків (не за замовчуванням), за допомогою CreateConnection метод. Якщо користувач хоче використовувати інші з’єднання (не основне і не за замовчуванням), він має передати це з’єднання явно як параметр методу, який він бажає використати. Користувач може додатково створювати будь-яку кількість з’єднань. З’єднання за замовчуванням може бути лише одне на потік. Зверніть увагу, що з’єднання за замовчуванням працюють коректно, якщо користувач використовує об’єкти Thread для багатозадачності. Якщо користувач використовує ConnectionPool або об’єкти Task для багатозадачності, цей режим може призвести до неправильного поводження програми. Щоб уникнути цієї проблеми, користувач повинен вручну звільнити з’єднання за замовчуванням (якщо він його використовує) в кінці виконання коду.
- ConnectionAsgmtType.UseMain Клієнт електронної пошти використовує основне з’єднання для всіх операцій з кількох потоків. Основне з’єднання — це з’єднання, створене одночасно з клієнтом електронної пошти. Користувач не може створювати з’єднання за замовчуванням. Користувач може створювати з’єднання, не пов’язані з потоками (не за замовчуванням), за допомогою CreateConnection метод. Якщо користувач хоче використовувати інші з’єднання (не основне і не за замовчуванням), він повинен передати це з’єднання явно як параметр методу, який він збирається використовувати.
- ConnectionAsgmtType.UseDefault Клієнт електронної пошти неявно використовує лише з’єднання за замовчуванням для всіх операцій з кількох потоків. Основне з’єднання в цьому режимі не використовується. Якщо з’єднання за замовчуванням не було створене для певного потоку (перший виклик методу клієнта електронної пошти), клієнт створює з’єднання за замовчуванням неявно для потоку перед виконанням першої операції. Користувач не може створювати з’єднання за замовчуванням для потоків з CreateConnectionметод, оскільки вони створюються автоматично. Коли для потоку створюється з’єднання за замовчуванням, воно використовується неявно для всіх методів клієнта електронної пошти, які викликаються в цьому потоці. Користувач також може створювати з’єднання, які не прив’язані до потоків (не з’єднання за замовчуванням), за допомогою CreateConnectionметод. Якщо користувач хоче використовувати інші з’єднання (не основне і не за замовчуванням), він повинен передати це з’єднання явно як параметр методу, який він збирається використовувати. Користувач може додатково створювати будь-яку кількість з’єднань. На один потік може бути використане лише одне з’єднання за замовчуванням. Зверніть увагу, що з’єднання за замовчуванням працюють коректно, якщо користувач використовує об’єкти Thread для багатозадачності. Якщо користувач використовує ConnectionPool або об’єкти Task для багатозадачності, цей режим може призвести до неправильного поводження програми. Щоб уникнути цієї проблеми, користувач повинен вручну звільнити з’єднання за замовчуванням в кінці виконання коду.