From 398877722a9141d47789c8b90f92f4a2a1b834fa Mon Sep 17 00:00:00 2001 From: Arnaldo Cesco Date: Mon, 27 May 2024 11:44:47 +0200 Subject: [PATCH 1/2] Trigger Engine: trigger policy TTLs are seconds! The message TTL argument for a policy (if set) was passed as-is to AMQP. However, TTLs in AMQP are in milliseconds, so a x1000 factor is added. Signed-off-by: Arnaldo Cesco --- .../amqp_consumer/amqp_message_consumer.ex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/astarte_trigger_engine/lib/astarte_trigger_engine/amqp_consumer/amqp_message_consumer.ex b/apps/astarte_trigger_engine/lib/astarte_trigger_engine/amqp_consumer/amqp_message_consumer.ex index ed850576a..247cf3f5e 100644 --- a/apps/astarte_trigger_engine/lib/astarte_trigger_engine/amqp_consumer/amqp_message_consumer.ex +++ b/apps/astarte_trigger_engine/lib/astarte_trigger_engine/amqp_consumer/amqp_message_consumer.ex @@ -201,7 +201,8 @@ defmodule Astarte.TriggerEngine.AMQPConsumer.AMQPMessageConsumer do }) do [] |> put_x_arg_if(maximum_capacity != nil, {"x-max-length", :signedint, maximum_capacity}) - |> put_x_arg_if(event_ttl != nil, {"x-message-ttl", :signedint, event_ttl}) + # AMQP message TTLs are in milliseconds! + |> put_x_arg_if(event_ttl != nil, {"x-message-ttl", :signedint, event_ttl * 1_000}) end defp put_x_arg_if(list, true, x_arg), do: [x_arg | list] From 54dc227ce38c8d2deca1b85cf2fc7669c3e90f63 Mon Sep 17 00:00:00 2001 From: Arnaldo Cesco Date: Mon, 27 May 2024 11:49:00 +0200 Subject: [PATCH 2/2] Docs: trigger delivery policy TTL is in seconds! Signed-off-by: Arnaldo Cesco --- doc/pages/architecture/062-trigger_delivery_policies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/pages/architecture/062-trigger_delivery_policies.md b/doc/pages/architecture/062-trigger_delivery_policies.md index cb82d30e6..64cdea9d6 100644 --- a/doc/pages/architecture/062-trigger_delivery_policies.md +++ b/doc/pages/architecture/062-trigger_delivery_policies.md @@ -48,7 +48,7 @@ A Trigger Delivery Policy is composed of: This is optional, but required if the policy specifies at least one handler with retry strategy. - Event TTL: in orer to further lower the space requirement of the event queue, events may be equipped with a TTL which specifies the amount of - milliseconds an event is retained in the event queue. When an event expires, it is discarded from the event queue, even if it has not been + seconds an event is retained in the event queue. When an event expires, it is discarded from the event queue, even if it has not been delivered. This is optional.