mysqlnode.jssails.jswaterlinesails.io.js

Sailsjs table needs to be updated automatically without using any cron


I am using SAILS JS and mysql adapter is being used. I have a model named as User with the following fields ID, USERNAME, EMAIL, ACTIVE_STATUS and CREATED_DATE.

By Default, active_status is set as 0. I want to update the status is 1 when created_date + 3 days is equal on Today.

Kindly suggest any possible ways to do this.


Solution

  • Hope you can use MySQL’s Event Scheduler

    Activate it by: SET GLOBAL event_scheduler = ON;

    Create event syntax:

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

    The schedule can be assigned various settings, e.g.

    Example:

    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
    

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