Skip to content

Commit 4fdb383

Browse files
committed
avoid to create a new timer each DNS check cycle
1 parent 26b3fd4 commit 4fdb383

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

ngx_http_upstream_dynamic_servers.c

+3-8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ typedef struct {
1515
ngx_resolver_t *resolver;
1616
ngx_msec_t resolver_timeout;
1717
ngx_http_upstream_resolved_t *resolved;
18+
ngx_event_t timer;
1819
} ngx_http_upstream_dynamic_server_conf_t;
1920

2021
typedef struct {
@@ -322,7 +323,7 @@ static ngx_int_t ngx_http_upstream_dynamic_servers_init_process(ngx_cycle_t *cyc
322323
dynamic_server[i].resolver = core_loc_conf->resolver;
323324
ngx_conf_merge_msec_value(dynamic_server[i].resolver_timeout, core_loc_conf->resolver_timeout, 30000);
324325

325-
timer = ngx_pcalloc(cycle->pool, sizeof(ngx_event_t));
326+
timer = &dynamic_server[i].timer;
326327
timer->handler = ngx_http_upstream_dynamic_server_resolve;
327328
timer->log = cycle->log;
328329
timer->data = &dynamic_server[i];
@@ -548,13 +549,7 @@ static void ngx_http_upstream_dynamic_server_resolve_handler(ngx_resolver_ctx_t
548549
return;
549550
}
550551

551-
ngx_event_t *timer;
552-
timer = ngx_pcalloc(ngx_cycle->pool, sizeof(ngx_event_t));
553-
554-
timer->handler = ngx_http_upstream_dynamic_server_resolve;
555-
timer->log = ngx_cycle->log;
556-
timer->data = dynamic_server;
557-
ngx_add_timer(timer, 1000);
552+
ngx_add_timer(&dynamic_server->timer, 1000);
558553
}
559554

560555
// Copied from src/core/ngx_resolver.c (nginx version 1.7.7).

0 commit comments

Comments
 (0)