aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/config/Keys.java
diff options
context:
space:
mode:
authorEdward Valley <ed.valley@yandex.com>2019-12-01 16:33:08 -0500
committerEdward Valley <ed.valley@yandex.com>2019-12-01 16:33:08 -0500
commit229c042edf74979d5893c047d2b5de7fd8cc8df0 (patch)
tree3a81e43fad378234fddd1f05b4b609dc656e6116 /src/main/java/org/traccar/config/Keys.java
parent169c40cc7207a962f027aea85bd8f9c04b33738f (diff)
downloadtraccar-server-229c042edf74979d5893c047d2b5de7fd8cc8df0.tar.gz
traccar-server-229c042edf74979d5893c047d2b5de7fd8cc8df0.tar.bz2
traccar-server-229c042edf74979d5893c047d2b5de7fd8cc8df0.zip
Implement wait and retry logic
Diffstat (limited to 'src/main/java/org/traccar/config/Keys.java')
-rw-r--r--src/main/java/org/traccar/config/Keys.java34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java
index 6102f7604..029316142 100644
--- a/src/main/java/org/traccar/config/Keys.java
+++ b/src/main/java/org/traccar/config/Keys.java
@@ -101,18 +101,36 @@ public final class Keys {
"forward.json", Boolean.class);
/**
- * Position forwarding queue size. A ring buffer of the specified size is used to queue positions.
- * If negative, zero, or not specified, queueing is disabled. (Legacy behaviour)
+ * Position forwarding retrying enable. When enabled, additional attempts are made to deliver positions.
+ * If initial delivery fails, because of an unreachable server or an HTTP response different from '200 OK',
+ * the software waits for 'forward.retry.delay.min' seconds to retry delivery. On subsecuent failures, this
+ * delay is incremented by 1 second up to 'forward.retry.delay.max'. On successful delivery, the delay is reset
+ * to 'forward.retry.delay.min'. Pending positions to be delivered are limited to 'forward.retry.pending.limit'.
+ * If this limit is reached, positions are discarded before next retry.
*/
- public static final ConfigKey FORWARD_QUEUE_SIZE = new ConfigKey(
- "forward.queue.size", Integer.class);
+ public static final ConfigKey FORWARD_RETRY_ENABLE = new ConfigKey(
+ "forward.retry.enable", Boolean.class);
/**
- * Position forwarding queue concurrency. Defines how many HTTP requests can be pending at any time.
- * If queueing is enabled, and this value is less than one, it's ignored and forced to be one.
+ * Position forwarding retry minimum delay in seconds.
+ * Can be set to anything between 1 and 3600 seconds. Defaults to 1 second.
*/
- public static final ConfigKey FORWARD_QUEUE_CONCURRENCY = new ConfigKey(
- "forward.queue.concurrency", Integer.class);
+ public static final ConfigKey FORWARD_RETRY_DELAY_MIN = new ConfigKey(
+ "forward.retry.delay.min", Integer.class);
+
+ /**
+ * Position forwarding retry maximum delay in seconds.
+ * Can be set to anything between 1 and 3600 seconds. Defaults to 10 seconds.
+ */
+ public static final ConfigKey FORWARD_RETRY_DELAY_MAX = new ConfigKey(
+ "forward.retry.delay.max", Integer.class);
+
+ /**
+ * Position forwarding retry pending limit.
+ * Can be set to anything greater than 0. Defaults to 100 positions.
+ */
+ public static final ConfigKey FORWARD_RETRY_PENDING_LIMIT = new ConfigKey(
+ "forward.retry.pending.limit", Integer.class);
/**
* Boolean flag to enable or disable position filtering.