Номера задач. Схема Master/Slave(s)


     В случае использования на системе нескольких каналов и, как следствие,
нескольких    задач   T-Mail,    работающих   одновременно,    используется
разграничение функций каждой из этих  задач. Выделяется только одна задача,
которая будет заниматься упаковкой почты  (Master), она может выполнять все
обычные  функции или  же вы  можете снять  с нее  обязанности по управлению
модемом  (см.  "Использование  выделенного  упаковщика"  в  этой же главе).
Остальные задачи (Slave) упаковкой почты не занимаются, они только работают
с модемами и распаковывают пришедшую на их канал почту. Передача информации
между задачами  Slave и Master  осуществляется через специальные  временные
файлы и флаги (см.ниже).

     Для нормального "разделения обязанностей" каждому экземпляру программы
t-mail.exe,  запущенному   в  многолинейной  системе,   должен  быть  задан
уникальный  номер  задачи.  Это  делается  с  помощью  ключа -N при запуске
t-mail.exe:

 T-MAIL -N1      - номер задачи (task number) 1  (по умолчанию)
 T-MAIL -N3      - ----- " ------             3

     В  некоммерческой версии  T-Mail  можно  использовать только  задачи с
номерами  0, 1  и 2.  В  коммерческих  версиях можно  использовать в  одной
системе до 256 задач (в зависимости от категории) с номерами 0...255.

     Кроме  того, мэйлеры  должны использоваться  по схеме  Master/Slave(s)
(ведущий/ведомые).  Для  этого  в  файле   t-mail.ctl   одному из экземпляров
T-Mail сообщается, что он Master, а остальным - что они Slave, например:

...
[1] Task_Mode      Master
[2] Task_Mode      Slave
[3] Task_Mode      Slave
...

     Тот T-Mail, который  был запущен с ключом -N1  возьмет на себя функции
упаковщика.  Остальные будут  через временный  файл получать  информацию об
очереди и  специальными флагами сообщать T-Mail/master  о необходимости той
или  иной  обработки.  Таким  образом,  только  один экземпляр T-Mail будет
просматривать письма и готовить их к отправке.

     Поскольку файлы   t-mail.ctl  и  events.ctl , как правило, являются общими
для всех экземпляров, в этом  случае  придется  для   некоторых  переменных
использовать поле task ident. Например:

[1]  Log  T-Mail1.log
[2]  Log  T-Mail2.log
...