【问题标题】:How to check MySQL table updates and send mail using cron job [closed]如何使用 cron 作业检查 MySQL 表更新和发送邮件 [关闭]
【发布时间】:2016-09-01 04:51:56
【问题描述】:
我编写了一个请求程序,其中包含每当插入新数据时自动发送邮件。我想使用 cron 来激活请求。
每当 MySQL 更新时,我都想自动接收邮件。
【问题讨论】:
标签:
mysql
amazon-web-services
cron
cron-task
【解决方案1】:
我建议以下解决方案:
1) 添加默认值 = 'INSERTED' 的列 'Status' 并创建一个简单的程序,该程序将每分钟检索状态为 'Inserted' 的行并发送电子邮件通知。发送电子邮件后,您应该将状态更新为“已发送”或类似的内容。
ALTER TABLE `your_table`
ADD COLUMN `STATUS` VARCHAR(45) NULL DEFAULT 'INSERTED';
您的应用程序由 cron 作业调度,应通过查询检索数据:
select <some_fields>
from <your_table>
where status = 'INSERTED';
<send email logic>
update <your_table>
set status = 'SENDED';
where status = 'INSERTED';
2) 创建触发器,它将有关新行的信息插入到单独的表中。接下来的步骤与之前的方法相同。
CREATE TRIGGER save_inserted_data AFTER INSERT ON your_table
FOR EACH ROW BEGIN
insert into log_table (id)
values (:new.id)
END;
<send email logic>
delete from log_table;
并且您应该添加一些逻辑,这些逻辑将在发送电子邮件期间考虑新行。即,
- 已插入 3 行
- 您检索到 3 行电子邮件通知
- 有人添加新的
- 只需标记/删除 3 行(无需新行)