Search

Home

Tworzenie wyzwalacza typu RabbitMQ

Tworzenie wyzwalacza typu RabbitMQ

Aby skonfigurować wyzwalacz uruchamiany po odebraniu komunikatu z brokera RabbitMQ, otwórz moduł TRIGGERS i kliknij przycisk New….

image

Z listy dostępnych typów wybierz RABBITMQ.

image

W sekcji PROPERTIES wskaż projekt GRAVITY, który ma być uruchamiany przez wyzwalacz.

Wyzwalacz przekazuje treść odebranego komunikatu do wskazanego parametru projektu, dlatego projekt musi posiadać co najmniej jeden zdefiniowany parametr wejściowy.

image

Następnie skonfiguruj parametry wyzwalacza:

  • RabbitMQ connection – połączenie z serwerem RabbitMQ.
  • Queue name – nazwa kolejki, z której będą odbierane komunikaty.
  • Auto acknowledgement – określa sposób potwierdzania przetworzenia wiadomości:
    • false →system nie wysyła potwierdzeń do serwera,
    • true → system wysyła informację o poprawnym lub niepoprawnym przetworzeniu wiadomości, w zależności od rezultatu wykonania procesu.
  • Message to parameter – parametr projektu, do którego zostanie przekazana odebrana wiadomość.
image

W przypadku błędnego przetworzenia wiadomości system GRAVITY wysyła do brokera RabbitMQ potwierdzenie z parametrem requeue=false. Oznacza to, że wiadomość nie zostanie ponownie umieszczona w kolejce.

Takie działanie zapobiega powstawaniu nieskończonej pętli, w której ta sama wiadomość byłaby wielokrotnie przekazywana przez RabbitMQ i przetwarzana przez system GRAVITY, powodując zwiększone zużycie zasobów.

Należy jednak pamiętać, że w takim przypadku wiadomość zostaje usunięta z kolejki. Aby uniknąć utraty wiadomości, zalecamy konfigurację mechanizmów Dead Letter Exchange (DLX) oraz Time-To-Live (TTL) po stronie RabbitMQ.

https://www.rabbitmq.com/dlx.html

https://www.rabbitmq.com/ttl.html

Aby aktywować wyzwalacz, włącz przełącznik Enabled.

image

Jeżeli chcesz otrzymywać powiadomienia o błędach, zaznacz opcję Send mail when error.

Jeżeli projekt posiada parametry wejściowe, zostaną one wyświetlone w panelu Parameters. Dla każdego z nich możesz określić wartość domyślną, która zostanie wykorzystana, jeśli wyzwalacz nie otrzyma wartości z zewnętrznego źródła.

image