private synchronized void startScheduledExecutor() { if ( running.get() ) { return; } getScheduledExecutorService().scheduleWithFixedDelay( new CommitTask(), delay, delay, TimeUnit.MILLISECONDS ); running.set( true ); }
@Override public void onChangeSetApplied(boolean someFailureHappened, boolean streaming) { if ( running.get() == false ) { startScheduledExecutor(); } if ( someFailureHappened ) { indexWriterHolder.forceLockRelease(); } }
@Override public void onClose() { if ( scheduledExecutorService != null ) { stopScheduledExecutor(); } }
public ExclusiveIndexWorkspaceImpl(DirectoryBasedIndexManager indexManager, WorkerBuildContext context, Properties cfg) { super( indexManager, context, cfg ); boolean async = ! BackendFactory.isConfiguredAsSync( cfg ); if ( async ) { int commitInterval = PropertiesParseHelper.extractFlushInterval( indexManager.getIndexName(), cfg ); ErrorHandler errorHandler = context.getErrorHandler(); commitPolicy = new ScheduledCommitPolicy( writerHolder, indexManager.getIndexName(), commitInterval, errorHandler ); } else { commitPolicy = new PerChangeSetCommitPolicy( writerHolder ); } }
private int extractInterval(SearchFactoryHolder sfHolder) { ScheduledCommitPolicy commitPolicy = (ScheduledCommitPolicy) getCommitPolicy( sfHolder ); return commitPolicy.getDelay(); }
public ExclusiveIndexWorkspaceImpl(DirectoryBasedIndexManager indexManager, WorkerBuildContext context, Properties cfg) { super( indexManager, context, cfg ); boolean async = ! BackendFactory.isConfiguredAsSync( cfg ); if ( async ) { int commitInterval = PropertiesParseHelper.extractFlushInterval( indexManager.getIndexName(), cfg ); ErrorHandler errorHandler = context.getErrorHandler(); commitPolicy = new ScheduledCommitPolicy( writerHolder, indexManager.getIndexName(), commitInterval, errorHandler ); } else { commitPolicy = new PerChangeSetCommitPolicy( writerHolder ); } }
private synchronized void startScheduledExecutor() { if ( running.get() ) { return; } getScheduledExecutorService().scheduleWithFixedDelay( new CommitTask(), delay, delay, TimeUnit.MILLISECONDS ); running.set( true ); }
@Override public void onChangeSetApplied(boolean someFailureHappened, boolean streaming) { if ( running.get() == false ) { startScheduledExecutor(); } if ( someFailureHappened ) { indexWriterHolder.forceLockRelease(); } }
@Override public void onClose() { if ( scheduledExecutorService != null ) { stopScheduledExecutor(); } }
@Test public void testScheduledCommits() throws Exception { writeData( NUMBER_ENTITIES ); AbstractWorkspaceImpl workspace = sfAsyncExclusiveIndex.extractWorkspace( testType ); CommitPolicy commitPolicy = workspace.getCommitPolicy(); assertTrue( commitPolicy instanceof ScheduledCommitPolicy ); ScheduledCommitPolicy scheduledCommitPolicy = (ScheduledCommitPolicy) commitPolicy; ScheduledThreadPoolExecutor scheduledExecutor = (ScheduledThreadPoolExecutor) scheduledCommitPolicy.getScheduledExecutorService(); POLLER.pollAssertion( () -> assertTaskExecuted( scheduledExecutor, 1 ) ); }