Class AbstractClusterSafetyManager

    • Constructor Detail

      • AbstractClusterSafetyManager

        protected AbstractClusterSafetyManager​(ClusterSafetyDao clusterSafetyDao,
                                               com.atlassian.event.api.EventPublisher eventPublisher,
                                               ClusterManager clusterManager,
                                               LicenseService licenseService)
    • Method Detail

      • onDatabaseNumberIsMissed

        protected void onDatabaseNumberIsMissed​(@NonNull String lastCacheModifier,
                                                @NonNull Integer cacheSafetyNumber,
                                                int nextValue)
                                         throws ClusterPanicException
        Method is called when safety number is missed in database. By default it updates safety number in the cache and database.
        Parameters:
        lastCacheModifier - last cache modifier
        cacheSafetyNumber - safety number in cache
        nextValue - next safety number to put into the cache and database
        Throws:
        ClusterPanicException - in a case if panic should be triggered
      • onCacheNumberIsMissed

        protected void onCacheNumberIsMissed​(@NonNull Integer dbSafetyNumber,
                                             int nextValue)
                                      throws ClusterPanicException
        Method is called when safety number is missed in cache. By default it updates safety number in the cache and database.
        Parameters:
        dbSafetyNumber - safety number in database
        nextValue - next safety number to put into the cache and database
        Throws:
        ClusterPanicException - in a case if panic should be triggered
      • onNumbersAreEqual

        protected void onNumbersAreEqual​(@NonNull String lastCacheModifier,
                                         @NonNull Integer dbSafetyNumber,
                                         @NonNull Integer cacheSafetyNumber,
                                         int nextValue)
                                  throws ClusterPanicException
        Method is called when safety numbers in cache and database are equal. By default it updates safety number in the cache and database.
        Parameters:
        lastCacheModifier - last cache modifier
        dbSafetyNumber - safety number in database
        cacheSafetyNumber - safety number in cache
        nextValue - next safety number to put into the cache and database
        Throws:
        ClusterPanicException - in a case if panic should be triggered
      • onNumbersAreDifferent

        protected void onNumbersAreDifferent​(@NonNull String lastCacheModifier,
                                             @NonNull Integer dbSafetyNumber,
                                             @NonNull Integer cacheSafetyNumber,
                                             int nextValue)
                                      throws ClusterPanicException
        Method is called when safety numbers in cache and database are not equal. By default this method throws ClusterPanicException to trigger cluster panic.
        Parameters:
        lastCacheModifier - last cache modifier
        dbSafetyNumber - safety number in database
        cacheSafetyNumber - safety number in cache
        nextValue - next safety number to put into the cache and database
        Throws:
        ClusterPanicException - in a case if panic should be triggered
      • onNumbersMissed

        protected void onNumbersMissed​(int nextValue)
        Method is called when safety numbers in cache and database are missed. By default it updates safety number in the cache and database.
        Parameters:
        nextValue - next safety number to put into the cache and database
        Throws:
        ClusterPanicException - in a case if panic should be triggered
      • updateSafetyNumber

        protected void updateSafetyNumber​(int nextValue)
        Updates safety number in cache and database
        Parameters:
        nextValue - safety number to be updated in cache and db
      • getNodeName

        protected @NonNull String getNodeName()
      • isLogEnabled

        public boolean isLogEnabled()
      • getNextValue

        protected int getNextValue()
      • getLogger

        protected abstract org.slf4j.Logger getLogger()
      • logRuntimeInfo

        protected abstract void logRuntimeInfo()
      • getSafetyNumberModifierMap

        protected abstract Map<String,​String> getSafetyNumberModifierMap()
      • getSafetyNumberMap

        protected abstract Map<String,​Integer> getSafetyNumberMap()
      • handlePanic

        protected abstract void handlePanic()
      • getEventPublisher

        public com.atlassian.event.api.EventPublisher getEventPublisher()