package com.brianway.webporter.collector.zhihu.upload;
import com.brianway.webporter.data.OutPipeline;
import com.brianway.webporter.data.elasticsearch.Document;
import com.brianway.webporter.data.elasticsearch.ElasticsearchUploader;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
public class ZhihuElasticsearchUploader extends ElasticsearchUploader implements OutPipeline<Document>, AutoCloseable {
private String index;
private String type;
private long awaitTime = 1;
private TimeUnit timeUnit = TimeUnit.MINUTES;
private AtomicLong count = new AtomicLong(0);
public ZhihuElasticsearchUploader(String index, String type) {
this.index = index;
this.type = type;
}
public void upload(Document document) {
upload(this.index, this.type, document);
}
@Override
public void process(Document outItem) {
upload(outItem);
count.incrementAndGet();
}
public AtomicLong getCount() {
return count;
}
@Override
public void close() throws InterruptedException {
awaitClose(awaitTime, timeUnit);
}
public void setTimeout(long awaitTime, TimeUnit timeUnit) {
this.awaitTime = awaitTime;
this.timeUnit = timeUnit;
}
}