Forum Webscript.Ru

Программирование => Perl => Тема начата: Winnie Pooh от 20 Февраля 2003, 04:50:12

Название: Кое-что о рассылке...
Отправлено: Winnie Pooh от 20 Февраля 2003, 04:50:12
Господа...
Я не спец в перле, но столкнулся с проблемой...
Мне нужно при помощи Перла рассылать новости подписчикам, которых может быть до 3000..
Хотелось бы узнать как это граммотнее организовать.
(есть MySql, sendmail)

как я думаю
из базы выбираю адресса..
а затем в цикле шлю при помощи вот этого..
open (MAIL, "/usr/sbin/sendmail | lalala@lululu.ru");
print MAIL "To: lalala@lululu.ru\\n";
print MAIL "From: Your_name\\n";
print MAIL "Subject: Test\\n\\n";
print MAIL "howdy, dude!";
close (MAIL);

но меня мучает вопрос... насколько это будет загружать сервер и как долго выполняться...
Название: Кое-что о рассылке...
Отправлено: Kwazar от 20 Февраля 2003, 08:22:58
Winnie Pooh
Во первых вы сделали самую дурацкую ошибку - брешь в системе безопасноти.
Во вторых, все зависит от самого сервера, платформы и т.д. Сам сендмаил работает не очень быстро, однако у меня некоторые рассылки работают на нем прекрасно и с большим количеством подписчиков. Нь все же я ркомендую вам отсылать рассылки на языке php, при помощи функции mail. Она хоть и хорошо память кушает, но работает на порядок быстрее....
Название: Кое-что о рассылке...
Отправлено: Alone от 20 Февраля 2003, 09:48:28
Хм...
Когда встала передомной такая задача (правда там было более 30000) я побежал к админам :) Они поставили Qmail (вроде так пишется) итог:
5000 мыл добавляется в очередь ~ 3-6 минут и отправляется ~1 час (1 мисьмо ~ 0.7 сек)
Цитировать

Во первых вы сделали самую дурацкую ошибку - брешь в системе безопасноти.

А можно поподробнее или ссылку ?

Цитировать

на языке php, при помощи функции mail

И какие её преимущества ?
Особенно не видны они если почитать http://forums.webscript.ru/showthread.php?postid=8281
Название: Кое-что о рассылке...
Отправлено: Kwazar от 20 Февраля 2003, 10:51:52
open (MAIL,"|$SEND_MAIL -t -oi");
Название: Кое-что о рассылке...
Отправлено: NeoNox от 20 Февраля 2003, 12:10:45
Цитировать
Нь все же я ркомендую вам отсылать рассылки на языке php

Удивлен. PHP уже начали использовать как MTA? Или как сетевой интерфейс?
Цитировать
Она хоть и хорошо память кушает, но работает на порядок быстрее....

Раз ты так утверждаешь - покажи мне цифры.
У меня цифры следующие, 10 000 сообщений (по 3-4 строчки в каждом) отправлялись ~ за 10 минут. Считайте сами.
Название: Кое-что о рассылке...
Отправлено: Kwazar от 20 Февраля 2003, 12:40:25
NeoNox
1)Я не так выразился.
2)Цифры:
Платформа - Солярка.
2500 писем со словом hello word.
php - 63 секунды
sendmail - 208 секунд.
В любом случае, от физических даныых сервера, платформы зависит многое... И данные эти 9 месячной давности.
Снимал величины не я - наш сис. админ.
Название: Кое-что о рассылке...
Отправлено: Mog. от 20 Февраля 2003, 16:19:42
Цитировать
php - 63 секунды

посмотреть бы php.ini того пхп
Цитировать
sendmail - 208 секунд.

А чем совал то, перлом?
Название: Кое-что о рассылке...
Отправлено: Winnie Pooh от 20 Февраля 2003, 16:52:00
Дело как раз в загруженности ресурсов сервера из-за mail() PHPного..
Осталось тока узнать как нужно запускать этот скрипт чтобы он выполнялся в бэкграунде...(crontab не подойдет, тк это будет происходить нерегулярно, те админ тискает кнопку и нуна запускать скрипт)
объясните плз...
Название: Кое-что о рассылке...
Отправлено: Mog. от 20 Февраля 2003, 16:58:59
Цитировать
админ тискает кнопку
вот и те ответ

А если админ за тридевять земель и через браузер, то это в скрипте делается.
Ну типа схема работы скрипта (грубо):
1. Сразу после запуска редирект юзеру куда нибудь;
2. А после редиректа вся бодяга с отправкой, до победного конца.
Название: Кое-что о рассылке...
Отправлено: Winnie Pooh от 20 Февраля 2003, 17:07:08
так так это все будет выполняться очень долго, те пользователь не сможет закрыть окно, те если он закроет то не все выполнится...
насколько я понимаю...
если не так то поправьте
Название: Кое-что о рассылке...
Отправлено: Mog. от 20 Февраля 2003, 20:07:14
Я собсно не сильно профи, но у меня, например скрипт редиректит юзера на другую страницу, а сам после этого шуршит дальше (создает каталоги, файлы). И ничего.
Ждем-с мнения профи.
Название: Кое-что о рассылке...
Отправлено: Макс от 21 Февраля 2003, 00:28:19
Цитировать
Дело как раз в загруженности ресурсов сервера из-за mail() PHPного..
Осталось тока узнать как нужно запускать этот скрипт чтобы он выполнялся в бэкграунде...(crontab не подойдет, тк это будет происходить нерегулярно, те админ тискает кнопку и нуна запускать скрипт)
на php.spb.ru зайди (если тебе на php). Кстати если я ничего не путаю mail() использует sendmail

По теме:
А идею сделать несколько сокетов с SMTP-сервером и одновременно по этим соединениям несколько писем слать (через threads или io::select) заплюют на месте ? (сам я такого не писал, просто первое что приходит на ум для ускорения рассылки)
Название: Кое-что о рассылке...
Отправлено: Winnie Pooh от 21 Февраля 2003, 00:57:44
вопрос не в ускорении а в распределении нагрузки на сервер....
Название: Кое-что о рассылке...
Отправлено: Mog. от 21 Февраля 2003, 07:48:16
Цитировать
mail() использует sendmail
или что там прописано в php.ini

Цитировать
несколько сокетов с SMTP-сервером

а если один и заслать ему списком всех получателей и одно сообщение. Чета я такое читывал, какие поля в письме для чего предназначены. Или путаю ...
Цитировать
в распределении нагрузки на сервер

между чем и чем?
Название: Кое-что о рассылке...
Отправлено: Kwazar от 21 Февраля 2003, 09:13:06
Кстати, письма отлылались у нас быстрее потому, что в php.ini был прописан Коммуигейт, вместо сендмайла.
Так вот...
Название: Кое-что о рассылке...
Отправлено: Chs от 21 Февраля 2003, 09:30:28
[moderatorial on]
Эээээ....господа, ближе к теме.
В форуме обсуждаем перл, производлительность серверов - в Веб-сервера, PHP в PHP.
Далее буду отстреливать.:)
[moderatorial /off]
Название: Кое-что о рассылке...
Отправлено: Макс от 21 Февраля 2003, 12:43:47
Цитировать
а если один и заслать ему списком всех получателей и одно сообщение. Чета я такое читывал, какие поля в письме для чего предназначены. Или путаю ...
cc и bcc ?
Еще если smtp-сервер поддерживает PIPELINING то можно посылать команды не дожидаясь ответа сервера (речь идет о командах mail, from, rcpt и data). Кстати насколько я могу судить, perl-овый Net::SMTP эту фичу поддерживает автоматически
Название: Кое-что о рассылке...
Отправлено: Winnie Pooh от 21 Февраля 2003, 23:57:15
спасибо все вроде разобрался..