MySql Job或体面永不停止的循环

时间:2012-01-06 19:32:31

标签: mysql

我正在寻找一种MySql工作,让我解释一下我的问题。

基本上我有一个表(代表我的排队列表),这个表包含一个字段“action”和一个字段“end date”。 “结束日期”表示我必须启动操作的时间。

我需要的是一个工作,或无限循环,谁不断检查“结束日期”字段,当这个字段,这个日期,对应于实际日期,然后执行一个动作(SQL查询)。 p>

希望你们能给我一些提示;)

1 个答案:

答案 0 :(得分:1)

我认为MySQL EVENT可以用于此目的。

示例:

delimiter $$

CREATE EVENT Every_5_minutes_e
  ON SCHEDULE
    EVERY 5 MINUTE
    STARTS CURRENT_TIMESTAMP + INTERVAL 1 DAY       --- starting tomorrow
    ENDS '2099-12-31 23:59:59'                      --- ending in 2099
  COMMENT 'Check queuing list and perform actions'
  DO
    BEGIN
      DECLARE actionstatus_doingnow VARCHAR(255);
      SET actionstatus_doingnow = CONCAT('Doing now ', NOW()) ;

      UPDATE QueueingList                       --- mark actions that will be done
      SET ActionStatus = actionstatus_doingnow  --- by this event
      WHERE EndDatetime <= NOW()
        AND ActionStatus = 'To Be Done'  ;

      ...                                       --- code for doing the actions 

      UPDATE QueueingList                         --- mark actions as finished
      SET ActionStatus = 'Done'
      WHERE ActionStatus = actionstatus_doingnow ;
    END $$

delimiter ;