Browse Source

[Minor] Try to fix HTTP maps check timeouts

tags/2.1
Vsevolod Stakhov 4 years ago
parent
commit
052323f56f
1 changed files with 14 additions and 10 deletions
  1. 14
    10
      src/libutil/map.c

+ 14
- 10
src/libutil/map.c View File

@@ -1007,31 +1007,35 @@ rspamd_map_schedule_periodic (struct rspamd_map *map,
if (map->next_check != 0) {
timeout = map->next_check - rspamd_get_calendar_ticks ();

if (timeout < map->poll_timeout) {
timeout = map->poll_timeout;
if (timeout > 0 && timeout < map->poll_timeout) {
/* Early check case, jitter */
gdouble poll_timeout = map->poll_timeout;

if (errored) {
timeout = map->poll_timeout * error_mult;
poll_timeout = map->poll_timeout * error_mult;
}
else if (locked) {
timeout = map->poll_timeout * lock_mult;
poll_timeout = map->poll_timeout * lock_mult;
}

jittered_sec = rspamd_time_jitter (timeout, 0);
jittered_sec = MIN (timeout, poll_timeout);
}
else if (timeout <= 0) {
/* Data is already expired, need to check */
jittered_sec = 0.0;
}
else {
jittered_sec = rspamd_time_jitter (timeout, map->poll_timeout);
/* No need to check now, wait till next_check */
jittered_sec = timeout;
}

/* Reset till the next usage */
map->next_check = 0;
}
else {
timeout = map->poll_timeout;

if (initial) {
timeout = 0.0;
} else {
}
else {
if (errored) {
timeout = map->poll_timeout * error_mult;
}

Loading…
Cancel
Save