Ş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