Şu satırı dahil ederiz
import com.hazelcast.jet.impl.connector.WriteMapP;
Bir IMap nesnesine yazmak işlemini gerçekleştiren Processor.
processInternal metodu
Kod şöyle. ArrayMap aslında bir Map gerçekleştirimi. Inbox'tan nesneleri okuyor ve buffer nesnesine ekliyor.public final class WriteMapP<T, K, V> extends AsyncHazelcastWriterP {
private static final int BUFFER_LIMIT = 1024;
private ArrayMap<Object, Object> buffer;
...
}
Kod şöyle.
@Override
protected void processInternal(Inbox inbox) {
if (buffer.size() < BUFFER_LIMIT) {
inbox.drain(addToBuffer);
}
submitPending();
}
private boolean submitPending() {
if (buffer.isEmpty()) {
return true;
}
if (!tryAcquirePermit()) {
return false;
}
setCallback(map.putAllAsync(buffer));
resetBuffer();
return true;
}
Hiç yorum yok:
Yorum Gönder