use of com.hazelcast.map.impl.querycache.publisher.PublisherAccumulatorHandler in project hazelcast by hazelcast.
the class AccumulatorConsumerOperation method run.
@Override
public void run() throws Exception {
QueryCacheContext context = getQueryCacheContext();
QueryCacheEventService queryCacheEventService = context.getQueryCacheEventService();
EventPublisherAccumulatorProcessor processor = new EventPublisherAccumulatorProcessor(queryCacheEventService);
AccumulatorHandler<Sequenced> handler = new PublisherAccumulatorHandler(context, processor);
int processed = 0;
do {
Accumulator accumulator = accumulators.poll();
if (accumulator == null) {
break;
}
if (isLocal()) {
// consume the accumulator if only this node is the owner
// of accumulators partition
publishAccumulator(processor, handler, accumulator);
} else {
// if the accumulator is not local, it should be a leftover
// stayed after partition migrations and remove that accumulator
removeAccumulator(context, accumulator);
}
processed++;
} while (processed <= maxProcessableAccumulatorCount);
}
use of com.hazelcast.map.impl.querycache.publisher.PublisherAccumulatorHandler in project hazelcast by hazelcast.
the class BasicAccumulator method createAccumulatorHandler.
@SuppressWarnings("unchecked")
private AccumulatorHandler<E> createAccumulatorHandler(QueryCacheContext context, AccumulatorInfo info) {
QueryCacheEventService queryCacheEventService = context.getQueryCacheEventService();
AccumulatorProcessor<Sequenced> processor = createAccumulatorProcessor(info, queryCacheEventService);
return (AccumulatorHandler<E>) new PublisherAccumulatorHandler(context, processor);
}
Aggregations