Sailsjs表需要自动更新而不使用任何cron

时间:2016-08-18 19:12:00

标签: mysql node.js sails.js waterline sails.io.js

我正在使用SAILS JS并且正在使用mysql适配器。我有一个名为User的模型,其中包含以下字段 ID,USERNAME,EMAIL,ACTIVE_STATUS和CREATED_DATE。

默认情况下,active_status设置为0.我想在今天创建日期+ 3天时更新状态为1。

请建议任何可行的方法。

1 个答案:

答案 0 :(得分: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;

可以为计划分配各种设置,例如

  • 在特定日期/时间运行一次: 在'YYYY-MM-DD HH:MM.SS' 例如在'2011-06-01 02:00.00'
  • 经过一段特定时间后运行一次: 在CURRENT_TIMESTAMP + INTERVAL n [HOUR | MONTH | WEEK | DAY | MINUTE] 例如AT CURRENT_TIMESTAMP + INTERVAL 1天
  • 永远以特定间隔运行: 每个[小时|月|周|日|分钟] 例如每一天
  • 在特定时间段内按特定时间间隔运行: 每个[小时|月|周|日|分钟]开始日期结束日期 例如每天1天开始CURRENT_TIMESTAMP + INTERVAL 1周结束'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