使用在线cron作业来运行预定的存储过程执行

时间:2012-10-14 10:44:15

标签: mysql stored-procedures cron scheduler job-scheduling

我刚写了一个mysql存储过程,该过程将根据两个表中的某些条件获取数据,然后将它们插入第三个表。我计划安排此过程在以下两种情况之一中运行: a)当在前两个表的EITHER中创建一个新条目并更新第三个表时,或者 b)只安排proc每运行5分钟并更新第三个表。

我不知道如何选择a)。 我正在考虑使用cron在我的基于Linux的Web主机上安排,但是在最后一刻意识到他们不允许我正在使用的基本版本的cron作业。

这使我进入了像onlinecronjobs.com和其他类似的服务,但我不明白他们将如何帮助我运行这个存储过程。

我的问题是,如果我给这些网站指向存储过程的链接 - 例如: www.mysite.com/cron/mySP.sql 那么这些网站可以自动调用这个存储过程并让存储过程将数据插入到第三个表中吗?我的假设是正确的 - 只需要给它们存储过程的路径,是吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

a)使用trigger

CREATE TRIGGER foo AFTER INSERT ON tableA FOR EACH ROW CALL my_proc();
CREATE TRIGGER bar AFTER INSERT ON tableB FOR EACH ROW CALL my_proc();

b)使用MySQL的event scheduler

CREATE EVENT baz ON SCHEDULE EVERY 5 MINUTE DO CALL my_proc();