Class ExpirationTaskFactory

java.lang.Object
org.keycloak.models.sessions.infinispan.expiration.ExpirationTaskFactory

public final class ExpirationTaskFactory extends Object
Provides factory method to instantiate an ExpirationTask.

The ExpirationTask is not started.

  • Constructor Details

    • ExpirationTaskFactory

      public ExpirationTaskFactory()
  • Method Details

    • create

      public static ExpirationTask create(KeycloakSession session, int expirationPeriodSeconds)
      Creates a ExpirationTask based on the Keycloak configuration.
      Parameters:
      session - The current KeycloakSession.
      Returns:
      A new instance of ExpirationTask. This instance is not started yet.
    • create

      public static ExpirationTask create(KeycloakSession session, int expirationTaskPeriodSeconds, Consumer<Duration> onTaskExecuted)
      Creates a ExpirationTask based on the configuration provided by the parameters.
      Parameters:
      session - The current KeycloakSession.
      expirationTaskPeriodSeconds - The period when the database is checked for expired sessions.
      onTaskExecuted - An optional Consumer<Duration>. It is invoked when a database expiration check finishes with its duration, in nanoseconds.
      Returns:
      A new instance of ExpirationTask. This instance is not started yet.
    • isSelectedForExpireSessionsInRealm

      public static boolean isSelectedForExpireSessionsInRealm(KeycloakSession session, RealmModel realm)
      Checks if the local instance is responsible to clean up expired sessions from realm.

      Provided for testing purposes only! Do not invoke in production.

    • manualTriggerTask

      public static void manualTriggerTask(KeycloakSession session)
      Manually trigger the expiration task, bypassing any scheduling.

      Provided for testing purposes only! Do not invoke in production.

    • membersSize

      public static int membersSize(KeycloakSession session)
      Returns the number of Keycloak instance when running with an external Infinispan cluster.

      Testing purpose only! Do not invoke in production.