定时任务

定时任务功能的开启:

方法1:

SET GLOBAL event_scheduler = 1;
或者:SET GLOBAL event_scheduler = ON;

注意:这种方法在重启mysql时就又会失效
方法2:

my.ini or my.cnf 中的
[mysqld]
添加 event_scheduler=1
或者 event_scheduler=ON

注意:这种方法在重启mysql之后也不会失效,意思是每次开启Mysql服务器就会将event_scheduler=ON运行一遍

定时任务功能的关闭:

SET GLOBAL event_scheduler = 0;
或者:SET GLOBAL event_scheduler = OFF;
就会将定时任务功能关闭

理解:关闭定时任务功能后,你之前创建的定时任务就不会再运行了

定时任务功能的定义:

image.png

一个示例:

 DROP EVENT  IF EXISTS event_test;
  CREATE  EVENT event_test   
  ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 03:00:00'), interval 0 second)
  ON COMPLETION PRESERVE ENABLE
  DO
  insert into test values(2,20);

解释:
ON SCHEDULE

  • ON SCHEDULE 计划任务,有两种设定计划任务的方式:
    1. AT 时间戳,用来完成单次的计划任务。
    2. EVERY 时间(单位)的数量时间单位[STARTS 时间戳] [ENDS时间戳],用来完成重复的计划任务。
  • STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second) 指定定时任务开始的时间为今天的03:00:00,那么之后应该每天凌晨执行

  • [ON COMPLETION [NOT] PRESERVE]
    ON COMPLETION参数表示"当这个事件不会再发生的时候",即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而PRESERVE的作用是使事件在执行完毕后不会被Drop掉,建议使用该参数,以便于查看EVENT具体信息。

  • [ENABLE | DISABLE]
    参数Enable和Disable表示设定事件的状态。Enable表示系统将执行这个事件。Disable表示系统不执行该事件。
    可以用如下命令关闭或开启事件:
    ALTER EVENT event_name ENABLE/DISABLE

  • [COMMENT 'comment']
    注释会出现在元数据中,它存储在information_schema表的COMMENT列,最大长度为64个字节。
    'comment'表示将注释内容放在单引号之间,建议使用注释以表达更全面的信息。

定时任务的查看:

SHOW EVENTS;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容