2016-08-18 27 views
1

我正在使用SAILS JS和mysql適配器。我有一個名爲User的模型,其ID爲ID,USERNAME,EMAIL,ACTIVE_STATUS和CREATED_DATE。Sailsjs表需要自動更新而不使用任何cron

默認情況下,active_status設置爲0.我想更新的狀態是1當created_date + 3天是相等的今天。

請提出任何可能的方法來做到這一點。

回答

1

希望你可以使用MySQL的事件調度

激活它由:SET GLOBAL event_scheduler = ON;

創建事件語法:

CREATE EVENT `event_name` 
ON SCHEDULE schedule 
[ON COMPLETION [NOT] PRESERVE] 
[ENABLE | DISABLE | DISABLE ON SLAVE] 
DO BEGIN 
    -- event body 
END; 

時間表可以指定各種設置,如

  • 一旦在特定日期/時間執行命令 AT「YYYY-MM-DD HH:MM.SS」 例如AT'2011-06-01 02:00.00'
  • 經過一段特定時間後運行一次: AT CURRENT_TIMESTAMP + INTERVAL n [HOUR | MONTH | WEEK | DAY | MINUTE] AT CURRENT_TIMESTAMP + INTERVAL 1天
  • 永遠以特定間隔運行: 每個[小時|月|周|日|分] 例如每個1天
  • 在特定時間段內以特定時間間隔運行: 每個n [小時|月|周|日|分]開始日期結束日期 每1天STARTS CURRENT_TIMESTAMP +間隔1周ENDS「2012-01-01 00:00.00」

實施例:

SET GLOBAL event_scheduler = ON; -- enable event scheduler. 
SELECT @@event_scheduler; -- check whether event scheduler is ON/OFF 
CREATE EVENT e_store_ts -- create your event 
    ON SCHEDULE 
     EVERY 24 HOURS -- run every 24 hours 
    DO 
     UPDATE myschema.users set active_status = 1 

參見:http://dev.mysql.com/doc/refman/5.5/en/create-event.html