Search in sources :

Example 1 with Group

use of org.neo4j.scheduler.Group in project neo4j by neo4j.

the class BlockBasedIndexPopulatorTest method shouldScheduleMergeOnJobSchedulerWithCorrectGroup.

@Test
void shouldScheduleMergeOnJobSchedulerWithCorrectGroup() throws IndexEntryConflictException, IOException {
    // given
    BlockBasedIndexPopulator<GenericKey, NativeIndexValue> populator = instantiatePopulator(NO_MONITOR);
    boolean closed = false;
    try {
        populator.add(batchOfUpdates(), NULL);
        // when
        MutableBoolean called = new MutableBoolean();
        JobScheduler trackingJobScheduler = new JobSchedulerAdapter() {

            @Override
            public <T> JobHandle<T> schedule(Group group, JobMonitoringParams jobMonitoringParams, Callable<T> job) {
                called.setTrue();
                assertThat(group).isSameAs(Group.INDEX_POPULATION_WORK);
                return jobScheduler.schedule(group, jobMonitoringParams, job);
            }
        };
        populator.scanCompleted(nullInstance, wrapScheduler(trackingJobScheduler), NULL);
        assertTrue(called.booleanValue());
        populator.close(true, NULL);
        closed = true;
    } finally {
        if (!closed) {
            populator.close(true, NULL);
        }
    }
}
Also used : JobScheduler(org.neo4j.scheduler.JobScheduler) Group(org.neo4j.scheduler.Group) MutableBoolean(org.apache.commons.lang3.mutable.MutableBoolean) JobSchedulerAdapter(org.neo4j.test.scheduler.JobSchedulerAdapter) JobMonitoringParams(org.neo4j.scheduler.JobMonitoringParams) Callable(java.util.concurrent.Callable) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 2 with Group

use of org.neo4j.scheduler.Group in project neo4j by neo4j.

the class PropertyStoreTraceIT method configure.

@ExtensionCallback
void configure(TestDatabaseManagementServiceBuilder builder) {
    var dependencies = new Dependencies();
    // disabling periodic id buffers maintenance jobs
    dependencies.satisfyDependency(new CentralJobScheduler(Clocks.nanoClock()) {

        @Override
        public JobHandle<?> scheduleRecurring(Group group, JobMonitoringParams monitoredJobParams, Runnable runnable, long period, TimeUnit timeUnit) {
            return JobHandle.EMPTY;
        }

        @Override
        public JobHandle<?> scheduleRecurring(Group group, JobMonitoringParams monitoredJobParams, Runnable runnable, long initialDelay, long period, TimeUnit unit) {
            return JobHandle.EMPTY;
        }
    });
    builder.setExternalDependencies(dependencies);
}
Also used : Group(org.neo4j.scheduler.Group) JobHandle(org.neo4j.scheduler.JobHandle) TimeUnit(java.util.concurrent.TimeUnit) Dependencies(org.neo4j.collection.Dependencies) CentralJobScheduler(org.neo4j.kernel.impl.scheduler.CentralJobScheduler) JobMonitoringParams(org.neo4j.scheduler.JobMonitoringParams) ExtensionCallback(org.neo4j.test.extension.ExtensionCallback)

Aggregations

Group (org.neo4j.scheduler.Group)2 JobMonitoringParams (org.neo4j.scheduler.JobMonitoringParams)2 Callable (java.util.concurrent.Callable)1 TimeUnit (java.util.concurrent.TimeUnit)1 MutableBoolean (org.apache.commons.lang3.mutable.MutableBoolean)1 Test (org.junit.jupiter.api.Test)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1 Dependencies (org.neo4j.collection.Dependencies)1 CentralJobScheduler (org.neo4j.kernel.impl.scheduler.CentralJobScheduler)1 JobHandle (org.neo4j.scheduler.JobHandle)1 JobScheduler (org.neo4j.scheduler.JobScheduler)1 ExtensionCallback (org.neo4j.test.extension.ExtensionCallback)1 JobSchedulerAdapter (org.neo4j.test.scheduler.JobSchedulerAdapter)1