【问题标题】:Sailsjs table needs to be updated automatically without using any cronSailsjs 表需要在不使用任何 cron 的情况下自动更新
【发布时间】:2016-12-25 20:04:54
【问题描述】:

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

默认情况下,active_status 设置为 0。我想在 created_date + 3 days 等于 Today 时更新状态为 1。

请提出任何可能的方法来做到这一点。

【问题讨论】:

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


    【解决方案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 天
    • 永远以特定的时间间隔运行: 每 n [小时|月|周|日|分钟] 例如每 1 天
    • 在特定时间段内以特定间隔运行: 每 n [HOUR|MONTH|WEEK|DAY|MINUTE] 开始日期结束日期 例如每 1 天开始 CURRENT_TIMESTAMP + INTERVAL 1 WEEK 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      相关资源
      最近更新 更多