我只是设置了一些存储过程以使用 CREATE EVENT 在事件调度程序中运行。
我试图找到它运行的历史存储在哪里(如果在某个地方)。我查看了文档,但找不到任何内容。
是否有一些表格或日志可以让我看到我的预定事件已成功运行?
没有计划事件的日志,除非它们抛出异常……在这种情况下,您会发现写入标准 MySQL“hostname.err”错误日志的错误。如果没有错误,并且它们未仍在运行,则它们已处理。每个事件在每次触发时都会在进程列表中获得一个新的线程 id,并且在事件完成时销毁线程。
您可以使用的一个选项是为此目的创建一个表,然后将日志条目从事件主体或事件调用的过程中插入到该表中。
在正在运行的事件中,CONNECTION_ID() 函数返回运行事件的线程的 id,您可以在执行日志记录的查询中使用此函数,如果这有用的话,例如插入包含该值的日志条目,当事件开始,并在事件快完成时更新该日志条目。
另一种选择是有点黑客(有人会说),但它也有效 - 您可以通过在最后引发 SQL 警告,从事件触发的事件或过程中在 MySQL 错误日志中生成“警告”的事件。请注意,这只会从事件中写入错误日志,这是因为没有连接客户端。
SIGNAL SQLSTATE '01000' SET MESSAGE_TEXT = 'hey, this job ran';
Run Code Online (Sandbox Code Playgroud)
在我的某些系统上,MySQL 错误日志由外部进程“拖尾”错误日志文件监视,我安排了事件,其唯一目的是定期向错误文件写入这样的警告,以便外部进程永远不会在经常安静的错误日志中没有看到“某些东西”的时间超过了很多分钟,为了让它正确地看到正确的日志文件增长而感到高兴。
归档时间: |
|
查看次数: |
24762 次 |
最近记录: |