如何使用cron作业检查MySQL表更新和发送邮件
我编写了一个请求程序,其中包含每当插入新数据时自动发送邮件。我想使用cron来激活请求如何使用cron作业检查MySQL表更新和发送邮件,mysql,amazon-web-services,cron,cron-task,Mysql,Amazon Web Services,Cron,Cron Task,我编写了一个请求程序,其中包含每当插入新数据时自动发送邮件。我想使用cron来激活请求 每当MySQL更新时,我都希望自动接收邮件。我建议以下解决方案: 1) 添加默认值为“INSERTED”的列“Status”,并创建一个简单的程序,该程序将按分钟检索状态为“INSERTED”的行并发送电子邮件通知。发送电子邮件后,您应该将状态更新为“已发送”或类似的内容 ALTER TABLE `your_table` ADD COLUMN `STATUS` VARCHAR(45) NULL DEFAUL
每当MySQL更新时,我都希望自动接收邮件。我建议以下解决方案: 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';
选择
从…起
其中status='INSERTED';
更新
设置状态='已发送';
其中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;
在插入到\u表后创建触发器保存\u插入的\u数据
每行开始
插入日志表(id)
值(:new.id)
结束;
从日志表中删除;
您应该添加一些逻辑,在发送电子邮件时考虑新行。即
- 插入3行
- 您检索了3行电子邮件通知
- 有人添加新的吗
- 只需标记/删除3行(无新行)