首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL事件调度

MySQL事件调度
EN

Stack Overflow用户
提问于 2012-08-28 15:17:22
回答 3查看 811关注 0票数 2

我有一个MySQL事件计划在每天午夜运行-但是数据库服务器每天晚上都会关闭,每天早上都会重新启动,但不一定是在同一时间。例如,服务器在上午10点启动,我仍然需要在当天执行该事件,尽管它被安排在中午12点我在ORACLE中测试了这个场景,它可以工作,但在MySQL中就不行了。你有什么建议吗?

先谢谢你,阿比拉什

EN

回答 3

Stack Overflow用户

发布于 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

票数 2
EN

Stack Overflow用户

发布于 2012-08-28 15:34:51

抱歉,MySQL不会处理这件事。如果错过了事件,那就错过了。它不会在以后再次尝试运行它。

您可以做的是创建一个表,记录上一次运行事件的时间(日期),然后将其安排在每个小时,但在运行之前检查它是否已在当天运行。这样,在午夜后第一次运行时,它将被激活。

票数 0
EN

Stack Overflow用户

发布于 2012-08-28 16:18:48

您可以创建一个每小时触发一次的事件。创建额外的表来存储有关事件触发的信息。

如果发生以下情况,请执行以下步骤:

  • 检查事件是否已触发-读取信息。从表
  • 执行代码如果事件未被触发,则将信息(日期)写入表中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12154513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档