Search in sources :

Example 1 with FileStorageScopeCleaner

use of lucee.runtime.type.scope.storage.clean.FileStorageScopeCleaner in project Lucee by lucee.

the class ScopeContext method clearUnused.

/**
 * remove all unused scope objects
 */
public void clearUnused() {
    Log log = getLog();
    try {
        // create cleaner engine for session/client scope
        if (session == null)
            session = new StorageScopeEngine(factory, log, new StorageScopeCleaner[] { // new
            new FileStorageScopeCleaner(Scope.SCOPE_SESSION, null), // new
            new DatasourceStorageScopeCleaner(Scope.SCOPE_SESSION, null) // SessionEndListener())
            // ,new CacheStorageScopeCleaner(Scope.SCOPE_SESSION, new SessionEndListener())
            });
        if (client == null)
            client = new StorageScopeEngine(factory, log, new StorageScopeCleaner[] { new FileStorageScopeCleaner(Scope.SCOPE_CLIENT, null), new DatasourceStorageScopeCleaner(Scope.SCOPE_CLIENT, null) // ,new CacheStorageScopeCleaner(Scope.SCOPE_CLIENT, null) //Cache storage need no control, if
            // there is no listener
            });
        // store session/client scope and remove from memory
        storeUnusedStorageScope(factory, Scope.SCOPE_CLIENT);
        storeUnusedStorageScope(factory, Scope.SCOPE_SESSION);
        // remove unused memory based client/session scope (invoke onSessonEnd)
        clearUnusedMemoryScope(factory, Scope.SCOPE_CLIENT);
        clearUnusedMemoryScope(factory, Scope.SCOPE_SESSION);
        // session must be executed first, because session creates a reference from client scope
        session.clean();
        client.clean();
        // clean all unused application scopes
        clearUnusedApplications(factory);
    } catch (Throwable t) {
        ExceptionUtil.rethrowIfNecessary(t);
        error(t);
    }
}
Also used : FileStorageScopeCleaner(lucee.runtime.type.scope.storage.clean.FileStorageScopeCleaner) StorageScopeEngine(lucee.runtime.type.scope.storage.StorageScopeEngine) Log(lucee.commons.io.log.Log) DatasourceStorageScopeCleaner(lucee.runtime.type.scope.storage.clean.DatasourceStorageScopeCleaner)

Aggregations

Log (lucee.commons.io.log.Log)1 StorageScopeEngine (lucee.runtime.type.scope.storage.StorageScopeEngine)1 DatasourceStorageScopeCleaner (lucee.runtime.type.scope.storage.clean.DatasourceStorageScopeCleaner)1 FileStorageScopeCleaner (lucee.runtime.type.scope.storage.clean.FileStorageScopeCleaner)1