Bramka czasowa w nitce procesu

Witam.

Jak w temacie. Jest to przydatna rzecz jeśli mamy w procesie ustawione powiadomienia o jakimś zdarzeniu, a nie chcemy być nimi zsypni, jeśli są wywoływane co kilka, kilkanaście sekund, a nie chcemy dostawać ich częściej niż co np. 2 minuty.

BRAMKA CZASOWA:

Działanie:
Zatrzyma wszystkie msg po pierwszym wywołaniu (bramka będzie zamknięta), jeśli czas minie kolejna wiadomość zostanie przesłana i zostanie ustawiona nowa wartość czasu blokowania kolejnych wiadomości i tak w kółko…

Nie jest to to samo co nod
image
ponieważ on wstrzymuje wysłanie msg o określony czas, ale każdy który do niego dotrze zostanie wysłany z opóźnieniem.

Bramka czasowa.json (1,1 KB)

Publikuje go dla tych co napotkali na podobny problem i szukali jego rozwiązania, nie wyważajmy dwa razy tych samych drzwi.
Pozdrawiam.

image
W funkcji znalazłem literówkę i ją poprawiłem, dodałem też zaokrąglenie czasu do pełnych sekund w komunikacie pod nodem :slight_smile:

Bramka czasowa.json (1,2 KB)

1 Like

Pozwolisz, że przeniosę ten wątek do bazy wiedzy jak będę przy kompie.

Najlepiej znasz organizacje tego forum, więc zrób jak uważasz.

@artur, @Marcin_Domański nie miał zastrzeżeń więc przeniosłem wątek zgodnie z Twoją sugestią.

@rafkan dzięki tylko jeśli możesz wrzuć to do NR -> baza wiedzy bo to temat dla node Reda :smiley:

@Marcin_Domański zobacz jeszcze czy nod delay w ustawieniu “rate limit” nie robi tego samego?

@artur masz racje. Nie wiedziałem tego wcześniej.
image
Przy opcji Rate Limit i zaznaczonym “drop intermediate messages” działanie jest dokładne takie same jak mojej funkcji.

Przy odznaczonej opcji “drop intermediate messages” puszcza wszystkie msg. z wejścia w ustalonych odstępach czasowych (co 15 sekund)

ZAMYKAM

1 Like

@Marcin_Domański sorki, że dopiero teraz o tym powiedziałem. Ale dawano nie używałem tej funkcji i jak teraz przeglądałem tematy na forum to mi się klapka w głowie otworzyła.

1 Like