package io.monokkel.actors; import akka.actor.Props; import akka.actor.UntypedActor; import io.monokkel.core.Indexer; import io.monokkel.messages.IndexResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Created by tarjei on 28/05/14. * * An actor that indexes the parse output * */ public class IndexActor extends UntypedActor{ private Logger log = LoggerFactory.getLogger(IndexActor.class); private final Indexer indexer; public IndexActor(final Indexer indexer){ this.indexer = indexer; } public static Props props(final Indexer indexer) { return Props.create(IndexActor.class, () -> new IndexActor(indexer));} @Override public void onReceive(Object message) throws Exception { if(message instanceof IndexResponse){ IndexResponse indexResponse = (IndexResponse) message; indexer.indexParserOutput(indexResponse.getPageData()); } else { unhandled(message); } } @Override public void postStop(){ log.info("Indexer is shutting down"); try { indexer.close(); } catch (Exception e) { log.warn("Failed to close the indexer connection"); } } }