mysql每隔5分钟安排一次活动

时间:2016-12-12 08:56:07

标签: mysql

我有以下脚本。脚本运行但我想要的是它在挂钟时间后每5分钟运行一次。这意味着它应该以5,10,15 ...的速度运行,遵循5小时间隔的挂钟时间。我可以衡量的结果是时间是10 - 30秒关闭。有没有办法让它更接近5分钟标记?谢谢。

CREATE DEFINER=`root`@`%` 
EVENT `run_event` 
ON SCHEDULE EVERY 5 MINUTE STARTS '2016-04-06 00:00:00' 
ON COMPLETION NOT PRESERVE ENABLE 
DO CALL my_procedure

1 个答案:

答案 0 :(得分:1)

您的配置似乎正确无误。事件的时间安排非常精确,但它合理精确 - 足够它不应该是半分钟。

事件疑难解答的一个有趣的黑客是在事件中发出警告。由于没有可以发送警告的客户端,警告将写入MySQL错误日志。这应该适用于MySQL 5.5及以上版本:

DELIMITER $$

DROP EVENT IF EXISTS run_event $$

CREATE DEFINER=`root`@`%` 
EVENT `run_event` 
ON SCHEDULE EVERY 5 MINUTE STARTS '2016-04-06 00:00:00' 
ON COMPLETION NOT PRESERVE ENABLE
DO 
BEGIN
  SIGNAL SQLSTATE '01000' SET MESSAGE_TEXT = 'run_event started';
  CALL my_procedure;
  SIGNAL SQLSTATE '01000' SET MESSAGE_TEXT = 'run_event finished';
END $$

我使用它已经有一段时间了,但我相信警告会立即写入错误日志,并且在事件结束前不会缓冲。