2 Mayıs 2023 Salı

Hazelcast Jet AbstractProcessor Sınıfı

Giriş
Şu satırı dahil ederiz 
import com.hazelcast.jet.core.AbstractProcessor;
Hemen hemen tüm kalıtımlar AbstractProcessor sınıfından oluyor

emitFromTraverser
Belirtilen Traverser nesnesini dolaşır ve tryEmit() metoduna geçer. Yani aslında Outbox nesnesine yazar. Eğer her şeyi yazabildiyse true döner, Yazamadıysa false döner. Kod şöyle
protected final <E> boolean emitFromTraverser(int ordinal, Traverser<E> traverser) {
  E item;
  if (pendingItem != null) {
    item = (E) pendingItem;
    pendingItem = null;
  } else {
    item = traverser.next();
  }
    for (; item != null; item = traverser.next()) {
      if (!tryEmit(ordinal, item)) {
        pendingItem = item;
        return false;
      }
    }
    return true;
}
Örnek
Stack trace şöyle. complete metodu bir Traverser nesnesi yaratır ve bunu emitFromTraverser() çağrısına geçer. emitFromTraverser() ,  Traverser nesnesi null dönünceye kadar tryEmit() çağrısı yapar. tryEmit() traverser'ın döndürdüğü şeyi OutBox'a yazar.
tryEmit:309, AbstractProcessor (com.hazelcast.jet.core)
emitFromTraverser:408, AbstractProcessor (com.hazelcast.jet.core)
emitFromTraverser:421, AbstractProcessor (com.hazelcast.jet.core)
complete:96, ReadKafkaConnectP (com.hazelcast.jet.kafka.connect.impl)
complete:541, ProcessorTasklet (com.hazelcast.jet.impl.execution)
stateMachineStep:421, ProcessorTasklet (com.hazelcast.jet.impl.execution)
call:291, ProcessorTasklet (com.hazelcast.jet.impl.execution)
tryEmit metodu
İçi şöyle
protected final boolean tryEmit(int ordinal, @Nonnull Object item) {
  return outbox.offer(ordinal, item);
}

Hiç yorum yok:

Yorum Gönder

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt