Runtime / wykonanie i komunikacja
Możliwości Runtime
Runtime jest warstwą wykonania: dostarcza mechanizmy, z których korzysta konkretna aplikacja lub gospodarz. Zakres zależy od implementacji i sposobu jej podłączenia.
Biblioteka .NET
| Obszar | Przykłady istniejącego kodu | Jak czytać zakres? |
|---|---|---|
| Kanały | Channel, BatchChannel, AdaptiveBatchChannel | Buforowanie, wysyłanie i odbiór; konkretne API ma własne wyniki i limity. |
| Strumienie | Stream, BroadcastStream, WindowedStream | Osobne typy i zasady odbioru. Nie są zamiennikami kolejki z potwierdzaniem. |
| Kolejki | PersistentQueue, magazyny kolejek, AttemptBoundQueue | Trwałość i tożsamość próby zależą od wybranej ścieżki. |
| Zadania | Scheduler, TaskExecutionEngine, rejestr i cykl życia | Wykonanie obsługiwanych zadań w danym środowisku. |
| Odporność | Retry, Timeout, CircuitBreaker, nadzór | Mechanizmy wymagające właściwej konfiguracji i odpowiedniego rodzaju operacji. |
| Obserwacja | Metryki, tracing, eksport Prometheus | Instrumentacja i odbiorca muszą być przygotowani. |
To mapa implementacji, nie macierz zgodności wszystkich wydań. Pierwszy przykład sprawdza wyłącznie Channel<T>, bez uruchamiania wszystkich wymienionych funkcji.
Ochrona konkretnego odbioru
AttemptBoundQueue<T> wiąże ACK/NACK z uchwytem konkretnego odbioru. Adapter przejmuje provider na wyłączność; nie można równolegle korzystać z tego samego magazynu poza nim.
Uchwyt jest lokalny dla instancji. Nie stanowi trwałego rejestru rozliczeń State. W przypadku niepewności po awarii potrzebny jest osobno oceniony kontrakt całej drogi, a nie tylko flaga „persistent”.
Embedded to osobne implementacje
Repozytorium zawiera obszary C i Rust dla embedded. Rust opisuje bufor kanału i ABI C, ale scheduler ma ograniczenia i nie jest kompletnym adapterem RTOS. Obecność źródeł ani test na komputerze nie dowodzą działania na dowolnej płytce.
Co sprawdziliśmy w tym przeglądzie?
Rzeczywisty przykład .NET odebrał kolejno 21.0 i 24.0; liczniki wyniosły 2/2. Wybrana grupa testów kanałów i AttemptBoundQueue zakończyła się 45 PASS, 0 FAIL, 0 SKIP. Nie uruchamiano pełnej bramki Runtime ani wszystkich backendów. Budowanie repozytorium zgłaszało istniejące ostrzeżenia.