Class DBAccessLock

java.lang.Object
com.djrapitops.plan.storage.database.DBAccessLock

public class DBAccessLock extends Object
Database Lock that prevents queries and transactions from taking place before database schema is ready.

- OperationCriticalTransactions pass through the Access lock without blocking to allow the initial transactions. - Queries inside Transactions skip access log to allow OperationCriticalTransactions perform queries.

  • Constructor Details

    • DBAccessLock

      public DBAccessLock(Database database)
  • Method Details

    • operabilityChanged

      public void operabilityChanged()
    • performDatabaseOperation

      public <E extends Exception> void performDatabaseOperation(ThrowingVoidFunction<E> operation) throws E
      Throws:
      E
    • performDatabaseOperation

      public <E extends Exception> void performDatabaseOperation(ThrowingVoidFunction<E> operation, Transaction transaction) throws E
      Throws:
      E
    • performDatabaseOperation

      public <T, E extends Exception> T performDatabaseOperation(ThrowingSupplier<T,E> operation) throws E
      Throws:
      E
    • performDatabaseOperation

      public <T, E extends Exception> T performDatabaseOperation(ThrowingSupplier<T,E> operation, Transaction transaction) throws E
      Throws:
      E