zoukankan      html  css  js  c++  java
  • mysql 定时计划任务 wish 按照id分组定时循环启动

    SELECT count(*) FROM wish_sellers_in;
    UPDATE  wish_sellers_in  SET act_status =0 WHERE  id >=1 AND id <=70;
    -- 查看事件
    SHOW EVENTS;
    -- 查看定时器状态
    SHOW VARIABLES LIKE '%sched%';
    -- 开启定时器
    SET GLOBAL event_scheduler=1;
    -- 查看
    SHOW VARIABLES LIKE '%sched%';

    -- 删除存储过程
    DROP PROCEDURE IF EXISTS pro_update_seller_in_act_status;
    DELIMITER $$
    CREATE DEFINER=`root`@`localhost` PROCEDURE pro_update_seller_in_act_status(a INT ,b INT)
    BEGIN
    IF a=1 AND b=360 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    IF a=1 AND b=1500 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    IF a=1501 AND b=5000 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    IF a=5001 AND b=15000 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    IF a=15001 AND b=31542 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    IF a=51 AND b=60 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    IF a=61 AND b=70 THEN
    UPDATE  wish_sellers_in  SET act_status =1 WHERE  id >=a AND id <=b;
    END IF;
    END $$
    DELIMITER ;

    -- 删除计划任务

    /*
    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id1;
    CREATE EVENT event_update_sellers_in_act_status_id1
    ON SCHEDULE
    EVERY 5 DAY STARTS '2016-07-28 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(1,10);
    */

    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id21;
    CREATE EVENT event_update_sellers_in_act_status_id21
    ON SCHEDULE
    EVERY 5 DAY STARTS '2016-07-29 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(5001,15000);

    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id31;
    CREATE EVENT event_update_sellers_in_act_status_id31
    ON SCHEDULE
    EVERY 5 DAY STARTS '2016-07-30 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(15001,31542);

    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id41;
    CREATE EVENT event_update_sellers_in_act_status_id41
    ON SCHEDULE
    EVERY 5 DAY STARTS '2016-07-31 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(1,360);

    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id51;
    CREATE EVENT event_update_sellers_in_act_status_id51
    ON SCHEDULE
    EVERY 5 DAY STARTS '2016-08-01 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(1,1500);

    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id61;
    CREATE EVENT event_update_sellers_in_act_status_id61
    ON SCHEDULE
    EVERY 5 DAY STARTS '2016-08-02 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(1501,5000);

    /*
    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_id71;
    CREATE EVENT event_update_sellers_in_act_status_id71
    ON SCHEDULE
    EVERY 7 DAY STARTS '2016-08-03 00:30:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(61,70);
    */




    DROP EVENT  IF EXISTS event_update_sellers_in_act_status_;
    CREATE EVENT event_update_sellers_in_act_status_
    ON SCHEDULE
    EVERY 1  DAY STARTS '2016-07-28 12:37:00'
    ON COMPLETION PRESERVE
    DO CALL  pro_update_seller_in_act_status(61,70);


    -- 开启事件
    ALTER EVENT event_update_sellers_in_act_status ON
    COMPLETION PRESERVE ENABLE;
    -- 查看存储过程状态
    SHOW PROCEDURE STATUS;
    -- 查看创建存储过程语句
    SHOW CREATE PROCEDURE pro_update_seller_in_act_status;
    -- 查看事件创建过程语句
    show create event [event_update_sellers_in_act_status_id21];
    -- 关闭事件
    ALTER EVENT event_update_sellers_in_act_status ON
    COMPLETION PRESERVE DISABLE;
     -- 关闭 定时器
    SET GLOBAL event_scheduler=0;
    -- 查看定时器状态
    SHOW VARIABLES LIKE '%sched%';
     -- 删除事件
    DROP EVENT [IF EXISTS] event_update_sellers_in_act_status;


    修改事件(ALTER EVENT)
    ALTER EVENT event_name
    [ON SCHEDULE schedule]
    [RENAME TO new_event_name]
    [ON COMPLETION [NOT] PRESERVE]
    [COMMENT 'comment']
    [ENABLE | DISABLE]
    [DO sql_statement]
    创建表 CREATE TABLE test(endtime DATETIME);

    创建存储过程test
    DROP PROCEDURE IF EXISTS test;
    CREATE PROCEDURE test ()
    BEGIN
    /*update examinfo SET endtime = now() WHERE id = 14; */
    INSERT INTO test(endtime) VALUE (NOW());
    END ;

    创建event e_test
    DROP EVENT IF EXISTS e_test;
    CREATE EVENT if not exists e_test
    on schedule every 3 second  
    on completion preserve
    do call test();
    每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去
     -----AT '2007-09-01 12:00:00' + INTERVAL 1 DAY  --只执行一次at




    4.event的时间设置
    设置event很简单,但是麻烦的是如何设置执行的时间,网上找了一些,自己总结了一下。
    先看语句,如下面这个
         CREATE EVENT test_event ON SCHEDULE EVERY 1 DAY STARTS '2012-09-24 00:00:00'
         ON COMPLETION PRESERVE ENABLE DO CALL test_procedure();
    EVERY 后面的是时间间隔,可以选 1 second,3 minute,5 hour,9 day,1 month,1 quarter(季度),1 year
    从2013年1月13号0点开始,每天运行一次
    ON SCHEDULE EVERY 1 DAY STARTS '2013-01-13 00:00:00'
    从现在开始每隔九天定时执行
    ON SCHEDULE EVERY 9 DAY STARTS NOW() ;
    每个月的一号凌晨1 点执行
    on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month),interval 1 hour);
    每个季度一号的凌晨1点执行
    on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour);
    每年1月1号凌晨1点执行
    on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour);

  • 相关阅读:
    《高效休息法》IT从业者如何高效休息
    《逆向管理-先行动后思考》
    《时间管理》总结
    Java面试,面试题
    Java线程池解析
    Java基础图解,JVM,线程,Spring,TCP,SpringMVC等开发体系图解
    Docker私服搭建--Harbor
    一:优化Docker中的Spring Boot应用:单层镜像方法
    七:Spring Security 前后端分离登录,非法请求直接返回 JSON
    python selenium模块使用出错-selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
  • 原文地址:https://www.cnblogs.com/hanlong/p/5715627.html
Copyright © 2011-2022 走看看