Wpis z mikrobloga

Na #raspberrypi zbieram dane z kilku czujników raportujących po kilka wartości co minutę. Większość danych jest przesyłana przez #mqtt. Danę będę zapisywał lokalnie (do bazy #postgresql / TimescaleDB) oraz przesyłał dalej po MQTT do #aws #iot Core skąd wylądują również w TimescaleDB.
Jak zorganizować, aby np. w przypadku braku dostępu do internetu zaległe dane zostały przesłane gdy będzie to możliwe?

W lokalnej bazie oznaczać które dane były już wysłane + program/skrypt który będzie wyszukiwał w bazie niewysłane dane i wysyłał je, a po wysłaniu oznaczał jako wysłane? Czy może użyć np. RabbitMQ i z niego pobierać dane do wysłania? Ewentualnie jakie jeszcze pomysły macie?

  • 3
@pangolin ja robię w javie ale mechanizm podobny jest jak pracowałem w projektach że jak internet nie działa czy coś to dane były na message brokerze dopóki nie zostały zdjęte z kolejki, tutaj na kafce, jest nawet mechanizm commitowania gdzie możemy się upewnić że została odczytana przez subskrybenta
@pangolin czaje, ale wydaje mi się że są jakieś message brokery bardzo lekkie które mają te mechanizmy które opisałeś, jeżeli chodzi o ten case który opisałeś to spotkalem się z nim parę razy w biznesowych i było to rozwiązane jak napisałem wcześniej, pewnie jest masa innych brokerów narzędzi, ale no gdzieś te dane muszą się zatrzymać, czyli tzw retencja danych która się uwalnia jak pojawi się subskrybent, ale tedy droga jak coś