12 Ocak 2023 Perşembe

Hazelcast Jet Inbox Arayüzü

Giriş
Şu satırı dahil ederiz
import com.hazelcast.jet.core.Inbox;
Kalıtım şöyle
Inbox
  AdaptingInbox
  ArrayDequeInbox : Esas kullanılan sınıf bu
  LoggingInbox
  TestInbox

ArrayDequeInbox  Sınıfı
Şu satırı dahil ederiz
import com.hazelcast.jet.impl.util.ArrayDequeInbox;
Kodu şöyle. İçinde bir ArrayDeque var. Jet sınıflarında durmak için ArrayDeque sınıfını add metodun breakpoint koyarız ve breakpoint condition olarak e instanceof JetSqlRow yaparız
/**
 * An {@link Inbox} implementation backed by an {@link ArrayDeque}.
 */
public final class ArrayDequeInbox implements Inbox {

  private final ProgressTracker progTracker;
  private final ArrayDeque<Object> queue = new ArrayDeque<>();
  ...
}
Bu sınıf thread safe değil gibi görünüyor ama aslında ProcessorTasklet#processInbox metodu tarafından doldurulup boşaltıldığı için yani tek thread ile çalıştığı için sorun yok. 

Processor'lar arasında iki tane sınıf var
OneToOneConcurrentArrayQueue
ManyToOneConcurrentArrayQueue

processInbox metodu bu kuyruklardan okuyor ve Inbox nesnesini dolduruyor






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