Search in sources :

Example 1 with PublisherAccumulatorHandler

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);
}
Also used : Accumulator(com.hazelcast.map.impl.querycache.accumulator.Accumulator) QueryCacheEventService(com.hazelcast.map.impl.querycache.QueryCacheEventService) EventPublisherAccumulatorProcessor(com.hazelcast.map.impl.querycache.publisher.EventPublisherAccumulatorProcessor) Sequenced(com.hazelcast.map.impl.querycache.event.sequence.Sequenced) PublisherAccumulatorHandler(com.hazelcast.map.impl.querycache.publisher.PublisherAccumulatorHandler) QueryCacheContext(com.hazelcast.map.impl.querycache.QueryCacheContext)

Example 2 with PublisherAccumulatorHandler

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);
}
Also used : QueryCacheEventService(com.hazelcast.map.impl.querycache.QueryCacheEventService) Sequenced(com.hazelcast.map.impl.querycache.event.sequence.Sequenced) PublisherAccumulatorHandler(com.hazelcast.map.impl.querycache.publisher.PublisherAccumulatorHandler) PublisherAccumulatorHandler(com.hazelcast.map.impl.querycache.publisher.PublisherAccumulatorHandler)

Aggregations

QueryCacheEventService (com.hazelcast.map.impl.querycache.QueryCacheEventService)2 Sequenced (com.hazelcast.map.impl.querycache.event.sequence.Sequenced)2 PublisherAccumulatorHandler (com.hazelcast.map.impl.querycache.publisher.PublisherAccumulatorHandler)2 QueryCacheContext (com.hazelcast.map.impl.querycache.QueryCacheContext)1 Accumulator (com.hazelcast.map.impl.querycache.accumulator.Accumulator)1 EventPublisherAccumulatorProcessor (com.hazelcast.map.impl.querycache.publisher.EventPublisherAccumulatorProcessor)1