Разработка Собственной Очереди Сообщений

Мыш

Премиум
12.02.2008
1 097
10
#1
Всем привет. Вот возник очередной философский вопрос. :)

Есть офис с небольшим почтовым трафиком (максимум 1000 исх. писем в день; обычно неск. сотен) и с ОЧЕНЬ хилым каналом. Соответственно, периодически возникают затыки с лотусовой почтой: скажем, человек отправил 10 писем по 5 МБ каждое - и все, канал забит...

Политиццки вопрос не решить - люди шлют "большие" письма, в основном, по делу.
Ограничить объем? Задолбаются разбивать rar' ом на N частей (да и все равно же будут все части подряд отправлять). Выставлять лотусовые приоритеты в серверных правилах? Опять же, большие письма нужны тоже не ночью, а в раб. время...

Возникла мысль - все иcх. письма загонять серверным правилом в некую базу. Далее для этой базы написать шедульного агента. Он расставляет письмам приоритеты в зависимости от отправителя, получателя, размера и т.п. И потом некими порциями - по приоритету! - их "пропихивает" назад в mail.box. К ОПРЕДЕЛЕННЫМ задержкам при отправках (скажем, агент будет пробегать по базе раз в 5-10 мин) они готовы - главное, чтоб, грубо гря, письма размером в 10К от гендиректора уходили в ПЕРВУЮ очередь. Ибо сейчас эти письма зачастую висят в mail.box часами...

Вот сижу и думаю - будет ли это ВООБЩЕ работать? Мож, кто решал подобные задачи? Подскажите, плиз.

ЗЫ. Условие - надо сделать ИМЕННО и ТОЛЬКО на чистой Домине. Т.е., отправка всем писем, скажем, на некий сторонний "SmartHost с умной очередью" или использование стороннего софта под Домину не годидзе :-(
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#2
делал подобное работает
вот только если гендиректор напишет эти самые 5Мб всё будет как и раньше
а так да, пожно перекрутить маршрутизацию начисто
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#3
отцепляем файло, шифруем, кладем на общий диск, линк вместо аттача...
 
13.03.2009
625
1
#4
я в общем не эксперт в доминошной почте, но решал похожую задачу для http трафика. оно в принципе рулица средствами ОС:
трафик шейпер на внешнем интерфейсе плюс настройка отправки в 5-10 потоков. см "Maximum concurrent transfer threads"
Т.е. выделяем например половину канала под исходящий на 25 порт, для этой половины включаем какой-нить RED и вперед: у вас гарантировано сможет идти отправка 10 писем одновременно, причем трафик будет делиться относительно равномерно между ними

а без управления трафиком на внешнем интерфейсе есть вариант, что какой-нить юзер забьет канал тупой заливкой фоток на одноклассники.
Т.е. недостаточно шейпить smtp - необходимо выделить гарантированную полосу под него.

[updated] к самописному планировщику есть вопросы: что делать, если ваш письмо от генерального упало в планировщик в момент, когда пятиметровый слон уже отправляется и успел занять канал? Т.е. возможна ситуация, когда в планировщике только слоны и он(планировщик) вынужден поставить одного из них на отправку. А через пять ( десять, пятнадцать ) минут в планировщик падает то самое письмо от генерального... Дропать слона в mail.box? А ведь он мог уже наполовину уйти.
 

Мыш

Премиум
12.02.2008
1 097
10
#5
Спасибо за ответы.
настройка отправки в 5-10 потоков
Это сделано, но против "стада слонов" помогает плохо :-(
что делать, если ваш письмо от генерального упало в планировщик в момент, когда пятиметровый слон уже отправляется и успел занять канал?
Тут главная задача (как мне видится) - отправив "слона", не отправлять ему в хвост других "слонов" и "слонят". Т.е., "помнить", что "слон" уже заслан и в параллель ему пропихивать, скажем, только 10К-письма...
Меня, честно гря, пугает регулярное копирование писем из моей очереди в mail.box. По 1-2 я и сам агентами в нем создаю - а вот ежели раз в 5 минут это делать? Router не загнется ли?... ;)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#6
вопрос ровно в одном - отчего тако размер? ;)
зная "идиотов", кот. пихают рисунки или сложные отчёты (хехель на десятки тыс. строк) могу предположить :lol:
уяснив причину - можно "попытаться" решать иначе задачу...:
-урезание документов (уменьшить картинки)
-отображение на стороне сервера (возвращаемся к вопросу линков) и движка отображения
 

Мыш

Премиум
12.02.2008
1 097
10
#8
возвращаемся к вопросу линков
Дык отправляют в др. офис - общий диск с линками не прокатит. Создать некую общую базу и ее реплицировать? Тоже вот думаю на эту тему...

send all messages as low priority if the message size is between:
Не нравится то, что надо указывать определенный диапазон для low priority. Т.е., канал-то забивается только иногда, бОльшую часть времени он вполне доступен. Если отправлять низкоприоритетников ночью, получим дневной простой в работе :)
 

RAJ

Well-known member
17.01.2007
440
0
#9
Не нравится то, что надо указывать определенный диапазон для low priority. Т.е., канал-то забивается только иногда, бОльшую часть времени он вполне доступен. Если отправлять низкоприоритетников ночью, получим дневной простой в работе :)
необязательно её на ночь ставить, пусть отправляется целый день, пропуская остальные
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#11
Дык отправляют в др. офис - общий диск с линками не прокатит.
несовсем так :lol: - ставим DFS (виндовый) или rsync
ведь такой объем не генерят с нуля
конечно луче распределённую ФС с дедупликацией, но это из нереальной области для офиса ;)