1
我正在尋找一種MySql工作,讓我解釋我的問題。MySql工作或體面的永無止境的循環
基本上我有一個表(代表我的排隊列表),這個表包含一個字段「動作」和一個字段「結束日期」。 「結束日期」代表我必須發起行動的時間。
我需要的是一個工作或無限循環,他經常檢查「結束日期」字段,並且此字段的日期對應於實際日期,然後執行操作(SQL查詢)。
希望你們能夠給我一些提示;)
我正在尋找一種MySql工作,讓我解釋我的問題。MySql工作或體面的永無止境的循環
基本上我有一個表(代表我的排隊列表),這個表包含一個字段「動作」和一個字段「結束日期」。 「結束日期」代表我必須發起行動的時間。
我需要的是一個工作或無限循環,他經常檢查「結束日期」字段,並且此字段的日期對應於實際日期,然後執行操作(SQL查詢)。
希望你們能夠給我一些提示;)
我覺得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 ;
的問題是,我的表將只檢查每5分鐘,所以它不是「實時」 ...... – Sindar 2012-01-06 20:24:38
這僅僅是一個例子。如果你喜歡,你可以把「每秒1次」。 – 2012-01-06 20:25:43
是的,但是如果我經常做這個,我的數據庫會爆炸...... – Sindar 2012-01-06 20:40:12