Scheduler

MP Scheduler Service

The MpSchedulerService provides functionality for scheduling and managing jobs within the RLI platform:

const COUNT_KEY = "run-count";
const SCHEDULED_ACTION_NAME = "scheduled-action-1";

module.exports = {
  //  	...config,
  eventHandlers: {
    onAppInstall: async (r, ctx) => {
      await r.scheduler.scheduleAppJobs({
        schedulerName: SCHEDULED_ACTION_NAME,
        scheduledAt: Math.floor(Date.now() / 1000) + 20,
      });
    }
  },
  scheduledActions: [
    {
      name: SCHEDULED_ACTION_NAME,
      run: async (r, args) => {
        console.log("Logging every 12 hrs");
        let count = await r.kv.getAppValue(COUNT_KEY);
        if(count < 10) {
          count = count + 1;
        } else {
          await r.scheduler.deleteScheduledJob("scheduled-action-1");
          return;
        }

        await r.kv.setAppValue({
          key: COUNT_KEY,
          value: count,
          ttlInSeconds: 100000000,
        });
      },
      interval: 43200, 
    },
  ],
}