Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
1

Уведомления пользователя по почте

04.03.2014, 21:38. Просмотров 615. Ответов 8
Метки нет (Все метки)

Добрый вечер. Не имею ни малейшего представления, как можно решить следующую задачу. Давай те представим ситуацию, в которой Петя, добавляется в друзья к Васе. Вася получает уведомление на е-mail о заявке нового пользователя ему в друзья. Вася заходит в личный кабинет и одобряет заявку Пети. Но вот вопрос. А что если Петя, отменил, свою заявку к Васе? Передумал, добавляться к нему в друзья. А уведомление уже было отправлено на почту к Васе. Как быть? Как правильно реализовать уведомления на почту о добавлениях в друзья? Код необязателен. Интересует сам механизм.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2014, 21:38
Ответы с готовыми решениями:

Уведомления для пользователя
В общем есть модуль новостей, в новостях есть комментарии. Если пользователь создал новость и в...

Как провести пользователя по сайту без его уведомления
Здравствуйте, подскажите в каком направление копать. В крации мне нужно, что бы пользователь...

Facebook, уведомления о постах пользователя
Стоит задача написать Telegram бота, который будет отправлять уведомления о новых постах...

По поводу окошка уведомления о новой почте!
К примеру я меняю ID, но сообщение о новой почте выходит все равно по старой почте! Где настроить...

8
16 / 16 / 6
Регистрация: 14.11.2013
Сообщений: 86
05.03.2014, 02:11 2
Поставить время на одобрение заявки.
При отмене заявки время = 0.
1
55 / 53 / 18
Регистрация: 05.08.2013
Сообщений: 327
05.03.2014, 07:10 3
А никак, да и зачем? Единственно что можно сделать предупредить Васю о том что заявка на добавление в друзья отменена, если Петя клацнет по кнопке отменить заявку.
1
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
05.03.2014, 15:16  [ТС] 4
Ко мне пришла следующая идея. Но для её реализации потребуется БД с таблицей, в которую мы будем добавлять новые "задачи". Когда Петя добавляется к Васе в друзья, мы не отправляем уведомление на e-mail сразу. А действуем по следующей схеме:

файл обработчик:
PHP
1
2
3
4
5
6
// получаем post переменные
// заносим в БД `table_friends`данные о новой заявке
// заносим в БД `table_tasks`новое событие о добавлении в друзья
sleep(900); // останавливаем выполнение скрипта на 15 минут
// проверяем, имеется ли толька что созданное событие в таблице `table_tasks`
// если имеется, то отправляем Васе уведомление на e-mail
Если за эти 15 минут, Петя не отменит заявку к Васе, то мы отправляем уведомление. Функция отмены заявки, также включает в себя отмену созданной задачи в таблице `table_tasks`.

Как такой вариант?

Добавлено через 6 минут
Меня интересует также следующий вопрос. Если я буду использовать таким образом sleep(900);, это значит, что обработчик у меня будет висеть в памяти 15 минут. Чревато ли это какими-нибудь последствиями? Так как пользователей, может быть много и если в памяти будет висеть множество подобных процессов, это наверное на что-то влияет.
0
510 / 452 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
05.03.2014, 16:47 5
разбейте задачу на несколько отдельных команд.
первая будет добавлять таску в таблицу
вторая будет делать рассылку, только тех заданий у которых время создания более пятнадцати минут назад
третья будет, в случае отказа добавляться, удалять таску
Таким образом не надо не каких слипов.
1
55 / 53 / 18
Регистрация: 05.08.2013
Сообщений: 327
05.03.2014, 16:50 6
плохая идея на счет sleep.
Тогда уж по такой схеме нужно делать так:
1. Заносишь в таблицу данные с временем (time)
2. На часто посещаемой странице делаешь проверку (что то типа крона, ну или уже кроном воспользуйся)
3. В обработчике проверяешь все записи на время, к примеру если time + 15 минут меньше нынешнего времени, то.
4. Берешь ID юзера из таблицы table_tasks, дергаешь его email и отправляешь письмо.

Это наверное будет оптимальный вариант и самый правильный.

ПС. Пока писал уже опередили xD
1
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
05.03.2014, 16:52  [ТС] 7
webphp. Спасибо. Решил все таки воспользоваться CRON'ом, по тому же принципу.
0
1953 / 792 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
05.03.2014, 16:57 8
Ну, а я просто не вижу смысла во всех этих ухищрениях. На мой взгляд лучше всего вариант с уведомлением о том, что заявка отменена. Немного хуже вариант с рассылкой в определенное время, т.е. при наступлении момента Х запускается скрипт, который собирает всю инфу с таблиц БД и рассылает ее кому нужно. Можно дать возможность пользователям самим указывать когда наступит для них этот момент Х.
1
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
05.03.2014, 17:13  [ТС] 9
Решил сделать следующим образом. На сервере, работает задача, которая каждые 10 минут запускает php скрипт. В нём мы смотрим, что у нас имеется в отдельной таблице БД, специально отведённой для нашей цели. Если в этой таблице находим запись, в которой Петя, отправил Васе заявку в друзья и если эта заявка была отправлена более 10 минут назад, то отправляем Васе уведомление на почту. И так, со всеми остальными записями.

Если Петя отменил свою заявку, то удаляем запись из БД. И наш скрипт, не отправит уведомление Васе, так как не найдёт соответствующую запись.

Добавлено через 3 минуты
И более того, для экономии ресурсов, мы проверяем, находится ли Вася в офлайне. Если да, то отправляем ему уведомление на почту.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2014, 17:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как получать по электронной почте уведомления о сохранении исполняемых файлов в общей папке?
Здравствуйте, форумчане! Помогите разобраться... Я столкнулся с проблемой, настраивая фильтр...

Как сократить время отправки уведомления по почте в CMS "Малый бизнес"?
Всем привет, у меня битрикс, ни как не могу добиться максимальной скорости получения письма...

Доступ к почте зарегистрированного пользователя
Регистрирую пользователя через клас NotesRegistration. Потом нужно в ACL его почтового ящика...

Разработка службы уведомления для пользователя
Добрый день: Реализую программу вывода уведомления(форма, которая появляется, как в месседжерах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.