Sailsjs table 需要在不使用任何 cron 的情况下自动更新

Sailsjs table needs to be updated automatically without using any cron

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

默认情况下,active_status 设置为 0。当 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;

可以为时间表分配各种设置,例如

  • 运行 在特定 date/time 上一次: 在‘YYYY-MM-DD HH:MM.SS’ 例如在‘2011-06-0102:00.00’
  • 运行 在特定时间段过去后一次: 在 CURRENT_TIMESTAMP + INTERVAL n [小时|月|周|日|分钟] 例如在 CURRENT_TIMESTAMP + 间隔 1 天
  • 运行 在特定的时间间隔永远: 每 n [小时|月|周|日|分钟] 例如每 1 天
  • 运行 在特定时期的特定时间间隔: 每 n [小时|月|周|日|分钟] 开始日期结束日期 例如每 1 天开始 CURRENT_TIMESTAMP + 间隔 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