JVM is in development for v1. Interested in contributing or chatting with us?Get in touch!
JVM - schedule.every()
Sets the frequency and one or many handlers to be triggered.
import io.nitric.Nitric;
import io.nitric.faas.v0.Frequency;
public class Application {
  public static void main(String[] args) {
    // create a schedule that runs every 3 hours
    Nitric.INSTANCE.schedule("send-reminders").every(3, Frequency.Hours, (ctx) -> {
      // add code to run here
      return ctx;
    });
    Nitric.run();
  }
}
Parameters
- Name
 rate- Required
 - Required
 - Type
 - Int
 - Description
 The rate of which the frequency is run. Used in conjunction with the frequency to describe the schedules complete rate, e.g. '7 Hours'.
- Name
 frequency- Required
 - Required
 - Type
 - Frequency
 - Description
 The frequency describes the unit of the frequency. Valid frequencies are 'Days', 'Hours', or 'Minutes'.
- Name
 middleware- Required
 - Required
 - Type
 - EventMiddleware or List<EventMiddleware>
 - Description
 One or more middleware functions to use as the handler which will run on the defined frequency.
Examples
Create a Schedule to run every 3 minutes
import io.nitric.Nitric;
import io.nitric.faas.v0.Frequency;
public class Application {
  public static void main(String[] args) {
    // create a schedule that runs every 3 minutes
    Nitric.INSTANCE.schedule("send-reminders").every(3, Frequency.Minutes, (ctx) -> {
      // add code to run here
      return ctx;
    });
    Nitric.run();
  }
}
Create a Schedule with multiple middleware/handlers
import io.nitric.Nitric;
import io.nitric.faas.v0.EventContext;
import io.nitric.faas.v0.Frequency;
import io.nitric.faas.v0.Handler;
import java.util.List;
public class Application {
  // Create a middleware to handle report generation
  static EventContext generateReport(EventContext ctx, Handler<EventContext> next) {
    // code which generates a report
    return next.invoke(ctx);
  }
  // Create a middleware to handle notifications
  static EventContext sendNotification(EventContext ctx, Handler<EventContext> next) {
    // code which sends a notification
    return next.invoke(ctx);
  }
  public static void main(String[] args) {
    Nitric.INSTANCE.schedule("send-reminders").every(7, Frequency.Days, List.of(Test::generateReport, Test::sendNotification));
    Nitric.INSTANCE.run();
  }
}