zoukankan      html  css  js  c++  java
  • mysql定时任务用到存储过程和定时任务

    需求:

        需要将t_app_message中的消息(将要被发送的消息)给每一个学生发送一遍,并且在发送完成后,将消息置为已发送状态已发送状态。

    一言不合上代码

     1 /*删除存储过程*/
     2 drop procedure if exists proc_sendAllMsg; 
     3 /*创建存储过程*/ 
     4 CREATE PROCEDURE proc_sendAllMsg()
     5 BEGIN
     6 /*先插入*/
     7 INSERT t_base_message (sid,mid)
     8 SELECT a.id,b.id from t_base_student  a 
     9 INNER JOIN t_app_message b 
    10 where a.School_id = 1 and  b.sendtime<=NOW() and b.sendstatus = 0;
    11 UPDATE t_app_message  SET sendstatus = 1 where sendtime <=NOW();
    12 UPDATE t_app_message  SET showstatus = 1 where endtime <=NOW();
    13 end 
    14 
    15 /*指定数据库*/ 
    16 use xscp;
    17 /*删除原有的定时任务*/
    18 drop event if exists event_sendAllMsg;  
    19 
    20 CREATE EVENT event_sendAllMsg ON SCHEDULE EVERY 30 second starts  '2017-12-11 00:00:00' 
    21 DO 
    22 CALL proc_sendAllMsg; /*调用存储过程*/
    1 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%';
    2 将事件计划开启 : SET GLOBAL event_scheduler = 1;
    3 将事件计划关闭 : SET GLOBAL event_scheduler = 0;
    4 关闭事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
    5 开启事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
    6 查看事件任务 : SHOW EVENTS ;
    View Code

    备注:在event事件中:ON SCHEDULE 计划任务,有两种设定计划任务的方式:
     
    1. AT 时间戳,用来完成单次的计划任务。

    2. EVERY 时间(单位)的数量时间单位[STARTS 时间戳] [ENDS时间戳],用来完成重复的计划任务。

    在两种计划任务中,时间戳可以是任意的TIMESTAMP 和DATETIME 数据类型,时间戳需要大于当前时间。

    在重复的计划任务中,时间(单位)的数量可以是任意非空(Not Null)的整数式,时间单位是关键词:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。

    提示: 其他的时间单位也是合法的如:QUARTER, WEEK, YEAR_MONTH,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR_MINUTE,HOUR_SECOND, MINUTE_SECOND,不建议使用这些不标准的时间单位。

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

  • 相关阅读:
    Notes相关开发Tips
    gridView滚动条相关问题
    MyBatis学习(一)简单入门程序
    springMVC入门
    zoj 3702 Gibonacci number 找规律
    邻接表表示
    poj 1269 直线相交情况
    poj 3304 Segments 线段与直线相交的判断
    poj 1654 多边形面积
    zoj 3696 Alien's Organ 概率,泊松分布
  • 原文地址:https://www.cnblogs.com/pengpengzhang/p/8021840.html
Copyright © 2011-2022 走看看