我有一个MySQL事件计划在每天午夜运行-但是数据库服务器每天晚上都会关闭,每天早上都会重新启动,但不一定是在同一时间。例如,服务器在上午10点启动,我仍然需要在当天执行该事件,尽管它被安排在中午12点我在ORACLE中测试了这个场景,它可以工作,但在MySQL中就不行了。你有什么建议吗?
先谢谢你,阿比拉什
发布于 2012-08-28 15:56:36
对此行为的直接支持在bug #46813中作为功能请求提交。它仍在“等待分流”:
事件调度器应该能够定期检查并赶上错过的事件。虽然需要以这种方式运行的事件可以使用Windows上的Task Scheduler和Mac和*nix上的anacron进行调度,但这是不优雅的,而且与平台相关。
正如错误报告所建议的那样,您可以使用MySQL外部的软件来安排此类事件。或者,可以使用MySQL的init-file选项指定一个包含应该在启动时执行的命令的文件;使用该选项可以检查INFORMATION_SCHEMA.EVENTS表:将LAST_EXECUTED列与事件调度进行比较,如果错过预定的事件,则执行EVENT_DEFINITION。
发布于 2012-08-28 15:34:51
抱歉,MySQL不会处理这件事。如果错过了事件,那就错过了。它不会在以后再次尝试运行它。
您可以做的是创建一个表,记录上一次运行事件的时间(日期),然后将其安排在每个小时,但在运行之前检查它是否已在当天运行。这样,在午夜后第一次运行时,它将被激活。
发布于 2012-08-28 16:18:48
您可以创建一个每小时触发一次的事件。创建额外的表来存储有关事件触发的信息。
如果发生以下情况,请执行以下步骤:
https://stackoverflow.com/questions/12154513
复制相似问题