Ежедневное оповещение об отсутствии новых записей в базе данных - PullRequest
0 голосов
/ 23 февраля 2012

Как настроить оповещение по электронной почте для отправки, если к определенному времени в базу данных MySQL не было добавлено новых записей?

У меня есть простая таблица, состоящая из идентификатора и поля datetime,В идеале я хотел бы получать оповещения по электронной почте, если no записи будут вставлены в базу данных к 10:00 каждый день.Это вообще возможно?

Спасибо.

Ответы [ 3 ]

1 голос
/ 23 февраля 2012

Вы хотите задать запрос cron job по sql с полем datetime для записей gettng с интервалом в 1 день.

Если нет записи (count=0), то вам необходимо выполнить код для отправки почтового оповещения.

Запрос будет выглядеть следующим образом:

SELECT  count(id)
FROM    mytable
WHERE   datetime_field_date BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()

Пожалуйста, внесите необходимые изменения.

0 голосов
/ 23 февраля 2012

Предполагая, что вы хотите сохранить это полностью в базе данных, вам нужно создать СОБЫТИЕ, которое будет выполняться один раз в день (скажем, 10:00:01). Узнать больше .

Это событие будет выполнять запрос, чтобы проверить, были ли получены какие-либо записи с момента последней проверки. Что-то вроде запроса, предложенного Teez , будет достаточно.

Однако, возможно, вы захотите добавить немного больше умов, чтобы учесть перебои в работе. Если база данных не работает в 10.00.01, а запрос заканчивается в 10:05, вы не хотели бы, чтобы сообщение, полученное в 10:04, повредило результат (или вы? Зависит от бизнес-правил - возможно, эта запись должна были вставлены в 09:59, но база данных не работала ...)

В любом случае, если количество запросов равно нулю, вы хотите отправить предупреждение. Существует проект под названием MySQL Messages, который предоставляет API для этого. Проверьте это .

Поскольку здесь есть несколько звонков, вам нужно будет изменить утверждения с помощью BEGIN и END.

Если вы идете по этому маршруту, убедитесь, что планировщик событий включен. Узнать больше .

0 голосов
/ 23 февраля 2012

Вы можете настроить работу cron

Например

 0 10 * * * Your job over here

0 - минута

10 - час

так Каждый день в 10 часов утра cron будет выполнять вашу работу.

Для получения дополнительной информации перейдите на этот сайт http://www.adminschoice.com/crontab-quick-reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...