Подписка php

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Пользователь попросил сделать подписку на комменты, ну типа если кто-то откомментил фото, на которое он подписан, то ему будет приходить письмом, что добавлен коммент к фотографии этого чела и надо сходить глянуть. Типа уведомлений кароч. Письмо - в смысле в "личные сообщения" сайта, а не по эмайлу.
Я сделал отдельную таблицу с "id" подписчиков и "id" фотографий. При добавлении нового коммента, эта таблица сканируется и выбираются подписчики. Затем я циклом перебираю эти id_login подписчиков и всё собираю в массив для последующего запроса, примерно вот так:
Код:
foreach($array_subs as $value) {
  $text = 'Новый комментарий к фотографии '.$name_photo.' от пользователя '.$value['name'];
  $array_insert_sql[] = "(".$value['id_login'].", '$text', 1)";
}
if(count($array_insert_sql) > 0) {
   select("insert into `msg_comment` (`id_login`, `text`, `read`) values ".implode(',',$array_insert_sql));
}
Но потом подсчитал, что если за сутки будет добавлено 100 комментов и будет 100 подписчиков, то это будет 100*100 = 10000 писем разослано. И это только к 1 фото. Вобщем, вариант гамно вышел.
Есть предложения как сделать не такую ресурсоемкую подписку?
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
то это будет 100*100 = 10000 писем разослан
и че? на то он и компьютер (сервер) чтобы такое делать,
ну мне как вариант в голову приходит мжно остылать одним ходом просто клеить адресатов вместе, ну типа сразу на несколько мейлов отправлять, правда тогда другие будут видеть кому отсылается
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
то это будет 100*100 = 10000 писем разослан
и че? на то он и компьютер (сервер) чтобы такое делать,
ну мне как вариант в голову приходит мжно остылать одним ходом просто клеить адресатов вместе, ну типа сразу на несколько мейлов отправлять, правда тогда другие будут видеть кому отсылается
"Такое" делать? :) Я так понял ты лопатой деньги гребёшь, что на ресурсы сервера можно не обращать внимания и брать крутые серваки или сразу пару штук для обработки не правильного кода? :) Ну мне, кажется, что он не правильный и можно сделать получше :D
Даже по мелким подсчетам, 250 подписчиков и 500 комментов в сутки ко всем фоткам суммой. Итого выходит: 250 * 500 = 125.000 писем в сутки. Что будет через год? Можно конечно через крон чистить..
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
А ни кому тут не пришло в голову делать для пользователей персональную рассылку? писать в mysql таблицу, привязанную к юзерам (нечего этот мусор в одной с ними таблице хранить) все события для каждого юзера и отправлять все это ему раз в неделю или в день как он укажет в настройках.

А то рассылка на каждый чих никому не нравится
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
Даже по мелким подсчетам, 250 подписчиков и 500 комментов в сутки ко всем фоткам суммой. Итого выходит: 250 * 500 = 125.000 писем в сутки. Что будет через год? Можно конечно через крон чистить.
а если у тебя будет гот работать проект и прониситься деньге и увеличиваться люди, ты поставишьсебе крутой сервак, и не будешь переживать,

я вообше не пойму по какому поводу проблемы, написали пост, одним запросом выбираешь с бд все юезеров чьи комменты тут есть, и потом отправляешь
Код:
mail($to, MAIL_SUBJECT, $message, $headers)
ну каждого юзера в цикле, или скопом отпраляешь, блин да если у тебя будет на каждую новость по сто юзеров, у тебя проект окупится на более крутой сервер, я вообше не вижу проблемы, mail что такая тяжелая функция? есть спамеры на пхп так они там тысячи отсылают при этом используют обычный хост
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
[member=czp], Для начала, было бы не плохо читать первый пост темы и собственно вопрос Фокса. Его вообще не интересуют письма на мыло.


Фокс, я вот соглашусь с нашим lekzd. Нужно разделять таблички и так же соглашусь, насчет не таких частых уведомлений. Пользователь должен выбирать когда ему удобно получать рассылку и хочет ли он ее получать вообще. А запись 10 000 строчек в сутки - это фигня) Прихлопывай прочитанные раз в пару дней и тотально прочищай раз в неделю-другую и у тебя будет достаточно легкая табличка и при 500 и при 5000 юзеров.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ