CDI-native API
Inject JobSchedulerService like any other bean and hand it a method reference. Ratchet persists it, runs it on exactly one node, retries on failure, and fires lifecycle events you can observe.
Jakarta EE background jobs
Persistent, retrying background jobs on plain Jakarta EE. No proprietary dependencies, no message broker, and they run unchanged on whichever application server you already use.Persistent, retrying background jobs on plain Jakarta EE. No broker, no proprietary deps.
@Inject
JobSchedulerService scheduler;
scheduler
.enqueue(() -> ship(orderId))
.withMaxRetries(3)
.submit();@Inject
JobSchedulerService scheduler;
public void placeOrder(UUID orderId) {
scheduler.enqueue(() -> orders.process(orderId))
.withMaxRetries(3)
.withBackoff(
BackoffPolicy.EXPONENTIAL,
Duration.ofSeconds(2))
.withTags("orders", "fulfillment")
.submit();
}Standards-based and conformance-tested
WildFlyWildFly EE 11Open LibertyPayaraGlassFishMySQLPostgreSQLOracleSQL ServerMongoDB
Use cases
Documentation paths