[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-merchant] branch master updated: -refine back-off logic for taler
From: |
gnunet |
Subject: |
[taler-merchant] branch master updated: -refine back-off logic for taler-merchant-wirewatch |
Date: |
Sun, 28 Jan 2024 18:16:41 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository merchant.
The following commit(s) were added to refs/heads/master by this push:
new b4ee41f8 -refine back-off logic for taler-merchant-wirewatch
b4ee41f8 is described below
commit b4ee41f8e0bbfe26e189764fb1773131beb3a9eb
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sun Jan 28 18:16:38 2024 +0100
-refine back-off logic for taler-merchant-wirewatch
---
src/backend/taler-merchant-wirewatch.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/backend/taler-merchant-wirewatch.c
b/src/backend/taler-merchant-wirewatch.c
index ab49d8f5..350d8560 100644
--- a/src/backend/taler-merchant-wirewatch.c
+++ b/src/backend/taler-merchant-wirewatch.c
@@ -80,6 +80,11 @@ struct Watch
*/
struct GNUNET_TIME_Relative delay;
+ /**
+ * How long should long-polling take at least?
+ */
+ struct GNUNET_TIME_Absolute long_poll_timeout;
+
/**
* Login data for the bank.
*/
@@ -365,6 +370,8 @@ credit_cb (
GNUNET_SCHEDULER_shutdown ();
return GNUNET_SYSERR;
}
+ /* Success => reset back-off timer! */
+ w->delay = GNUNET_TIME_UNIT_ZERO;
{
struct GNUNET_DB_EventHeaderP es = {
.size = htons (sizeof (es)),
@@ -381,9 +388,20 @@ credit_cb (
return GNUNET_OK;
case MHD_HTTP_NO_CONTENT:
save (w);
- w->delay = GNUNET_TIME_UNIT_ZERO;
+ /* Delay artificially if server returned before long-poll timeout */
+ w->delay = GNUNET_TIME_absolute_get_remaining (w->long_poll_timeout);
+ break;
+ case MHD_HTTP_NOT_FOUND:
+ /* configuration likely wrong, wait at least 1 minute, backoff up to 15
minutes! */
+ w->delay = GNUNET_TIME_relative_max (GNUNET_TIME_UNIT_MINUTES,
+ GNUNET_TIME_STD_BACKOFF (w->delay));
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Unexpected HTTP status code %u(%d) from bank\n",
+ http_status,
+ ec);
break;
default:
+ /* Something went wrong, try again, but with back-off */
w->delay = GNUNET_TIME_STD_BACKOFF (w->delay);
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Unexpected HTTP status code %u(%d) from bank\n",
@@ -415,6 +433,8 @@ do_work (void *cls)
w->task = NULL;
w->found = false;
+ w->long_poll_timeout
+ = GNUNET_TIME_relative_to_absolute (BANK_TIMEOUT);
w->hh = TALER_MERCHANT_BANK_credit_history (ctx,
&w->ad,
w->start_row,
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-merchant] branch master updated: -refine back-off logic for taler-merchant-wirewatch,
gnunet <=