当date匹配mysql cell时执行脚本

时间:2014-06-06 11:09:48

标签: mysql debian

我有一台带有mysql服务器的debian机器。 在mysql上,我有一个表,其中包含许多带有datetime字段的行。 当机器的日期和时间与任何mysql记录中指定的日期和时间匹配时,如何执行php脚本? a)Mysql触发器? b)Deamon在后台运行并每隔n秒检查一次? c)Cron?

让我知道!

3 个答案:

答案 0 :(得分:0)

轮询MySQL会起作用但肯定效率不高,尤其是当有很多"触发器"时。 所以使用cronjob。注意:MySQL-Queries无法安排或取消cronjobs。所以(我猜)PHP脚本更新该日期字段也必须安排cronjobs。此外,每次更改列时,您都必须取消之前安排的cronjob并安排新的cronjob。

答案 1 :(得分:0)

由于您无法在Mysql数据库中运行shell命令,因此MySql触发器无效。因此MySQL Scheduler也没用。所以你需要一个外部脚本来帮助。

我建议创建一个(php)脚本并将其添加到crontab以便每分钟运行一次。它的任务是检查数据库中的匹配日期并运行您需要的任何命令。

答案 2 :(得分:0)

我认为最简单的解决方案是尽可能使用at命令。

基本上将数据插入mysql后,请执行以下操作:

1)创建(使用PHP)运行php文件的BASH脚本

script_1.sh 应如下所示:

!#/bin/bash

php /path/to/file.php

并使用以下命令使其可执行:

exec("chmod +x script_1.sh");

2)创建第二个BASH脚本,在所需的时间执行第一个: script_2.sh 应如下所示:

!#/bin/bash

at H:M Y:M:D < script_1.sh

使script_2可执行并使用exec命令运行它。