Форумы портала PHP.SU » » Вопросы новичков » Как это хранить в БД?

Страниц (1): [1]
 

1. webog - 23 Октября, 2019 - 12:36:37 - перейти к сообщению
Всем добра!

За помощь готов купить кофэ, чай или какао! Закатив глазки

Нужно напоминать пользователю каждый день допустим о "Выпей кофЭ".
Напоминать нужно 21 день (может и 30 и 50 дней)
Напомнить 1 раз в день проблем нет, создал БД, крон и вперед.
НО! Если нужно напоминать каждые 3 часа на протяжении 21-го дня и НЕ в ночное время, то тут уже загвоздка. Не понял
Как это хранить в БД? (MySQL, PHP)

Буду благодарен, тем кто откликнется Улыбка
2. Vladimir Kheifets - 29 Октября, 2019 - 12:12:01 - перейти к сообщению
webog пишет:
Всем добра!

За помощь готов купить кофэ, чай или какао! Закатив глазки

Нужно напоминать пользователю каждый день допустим о "Выпей кофЭ".
Напоминать нужно 21 день (может и 30 и 50 дней)
Напомнить 1 раз в день проблем нет, создал БД, крон и вперед.
НО! Если нужно напоминать каждые 3 часа на протяжении 21-го дня и НЕ в ночное время, то тут уже загвоздка. Не понял
Как это хранить в БД? (MySQL, PHP)

Буду благодарен, тем кто откликнется Улыбка

Добрый день!
Пишите в СRON
0 */3 * * * ........../Msg.php
Скрирт Msg.php будет запускаться каждые три часа.
Msg.php выбирает из БД дату с которой выдавать, сколько дней и установку на ночное время.
Если актуальная дата и время соответсвуют, сообщение отправляется.
Если дату с которой выдавать истекла из Msg.php редактируется строка CRON
#0 */3 * * * ........../Msg.php
Удачи!
3. LIME - 29 Октября, 2019 - 12:40:14 - перейти к сообщению
Редактируется крон? Шикарно
Зачем? Запускаем каждые 5мин в чем проблема
Потом надо отметить все взятые задачи как исполняемые. Чтобы в случае длительного выполнения следующий не взял ее. Это же позволяет параллелить. После выполнения отметить как завершенные или неудачные. При этом выполнение может крашнуть на любом этапе. Например взяли задание и отметили и тут же крашнули. Следующий процесс это уже не возьмет. Значит еще нужен процесс сборщик таких артефактов. Значит пишем еще и время для смены статуса задания, чтобы от него отталкиваться при решении является ли задание недоделанным. Или другой механизм. Например pid процесса выполнятора, но тогда хрена тебе распределенное выполнение.
Короче cap теорема итд итп
4. webog - 29 Октября, 2019 - 14:48:32 - перейти к сообщению
Отбой!
Задача решена.

 

Powered by ExBB FM 1.0 RC1