zoukankan      html  css  js  c++  java
  • mysql定时器

    mysql定时器既是mysql的事件,在实际开发中。我们有时候须要定时去运行一些操作。大部分人通过ScheduledExecutorService类去创建定时。这样的假设遇到大数据的更新的时候,运行速度比較忙,这时候我们能够考虑使用mysql定时器去运行SQL脚本文件。

    要使用mysql定时器。

    首先必须启动调度器“event_scheduler”。

    查看当前是否已开启事件计划(调度器)有3种方法:

    1)     SHOW VARIABLES LIKE 'event_scheduler';

    2)     SELECT @@event_scheduler;

    3)     SHOW PROCESSLIST;

    开启事件计划(调度器)开关有4种方法:

    1)     SET GLOBAL event_scheduler = 1;

    2)     SET @@global.event_scheduler = 1;

    3)     SET GLOBAL event_scheduler = ON;

    4)     SET @@global.event_scheduler = ON;

    其次是创建定时器事件。能够通过sql创建,也能够安装Navicat Premium(mysqlclient)创建。

    1)通过sql创建定时器事件:

    create event if not existseventJob 
    on schedule every 2 second STARTS '2015-07-14 00:00:00'
    on completion PRESERVE 

    ENABLE
    do callmypro();

    上述sql脚本中“eventJob ”为定时器事件名称。“mypro”为mysql函数或者存储过程。sql脚本表示从 '2015-07-14 00:00:00'開始,每2秒钟运行mypro()函数一次。当然也能够设置结束时间。

    2) 通过client创建定时器事件:

    如图中所看到的,callkeyword后是须要运行的函数或者存储过程;状态表示定时器事件的状态,是否启用。enable表示启用,disable

    表示不启用。能够手动设置也能够通过sql来进行设置。 on completion设置为“PRESERVE”。

    “计划”中标签中。主要是设置定时器的频率和開始结束时间。

    AT表示。从当前mysql数据库时间開始(这个时间是从启动器

    启用開始,即当状态为“ENABLE”时),依据一定频率的运行;EVERY是自己定义開始时间和结束时间;相对来书EVERY比較灵活,使用方便。

    最后,当然是设置定时器事件的状态。

    在上一步中,我们不管是sql创建还是client创建都能够设置状态。可是当我们没有设置状态或者说关闭定时器事件的时候。

    就须要运行sql

    ALTER EVENT eventJob ON  COMPLETION PRESERVE ENABLE;   ---- 开启事件
    ALTER EVENTeventJob ON  COMPLETION PRESERVE DISABLE;  ---- 关闭事件

  • 相关阅读:
    将execel表格的数据导入到mysql数据库
    清明听雨
    h5调用底层接口的一些知识
    微信小程序从零开始开发步骤(一)搭建开发环境
    Matplotlib
    Numpy
    pandas
    6 MapReduce的理解
    静态链表
    单链表
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5403101.html
Copyright © 2011-2022 走看看