Mercurial > hg > nginx-quic
comparison src/http/ngx_http_upstream_round_robin.c @ 6099:6ff0ebd6fbf4
Upstream: track the number of active connections to upstreams.
This also simplifies the implementation of the least_conn module.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Fri, 10 Apr 2015 13:16:23 +0300 |
parents | 575175ebf4b4 |
children | c44459611d91 |
comparison
equal
deleted
inserted
replaced
6098:ac34eff7e147 | 6099:6ff0ebd6fbf4 |
---|---|
432 | 432 |
433 pc->sockaddr = peer->sockaddr; | 433 pc->sockaddr = peer->sockaddr; |
434 pc->socklen = peer->socklen; | 434 pc->socklen = peer->socklen; |
435 pc->name = &peer->name; | 435 pc->name = &peer->name; |
436 | 436 |
437 peer->conns++; | |
438 | |
437 /* ngx_unlock_mutex(peers->mutex); */ | 439 /* ngx_unlock_mutex(peers->mutex); */ |
438 | 440 |
439 return NGX_OK; | 441 return NGX_OK; |
440 | 442 |
441 failed: | 443 failed: |
561 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, | 563 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, pc->log, 0, |
562 "free rr peer %ui %ui", pc->tries, state); | 564 "free rr peer %ui %ui", pc->tries, state); |
563 | 565 |
564 /* TODO: NGX_PEER_KEEPALIVE */ | 566 /* TODO: NGX_PEER_KEEPALIVE */ |
565 | 567 |
568 peer = &rrp->peers->peer[rrp->current]; | |
569 | |
566 if (rrp->peers->single) { | 570 if (rrp->peers->single) { |
571 | |
572 peer->conns--; | |
573 | |
567 pc->tries = 0; | 574 pc->tries = 0; |
568 return; | 575 return; |
569 } | 576 } |
570 | |
571 peer = &rrp->peers->peer[rrp->current]; | |
572 | 577 |
573 if (state & NGX_PEER_FAILED) { | 578 if (state & NGX_PEER_FAILED) { |
574 now = ngx_time(); | 579 now = ngx_time(); |
575 | 580 |
576 /* ngx_lock_mutex(rrp->peers->mutex); */ | 581 /* ngx_lock_mutex(rrp->peers->mutex); */ |
600 if (peer->accessed < peer->checked) { | 605 if (peer->accessed < peer->checked) { |
601 peer->fails = 0; | 606 peer->fails = 0; |
602 } | 607 } |
603 } | 608 } |
604 | 609 |
610 peer->conns--; | |
611 | |
605 if (pc->tries) { | 612 if (pc->tries) { |
606 pc->tries--; | 613 pc->tries--; |
607 } | 614 } |
608 | 615 |
609 /* ngx_unlock_mutex(rrp->peers->mutex); */ | 616 /* ngx_unlock_mutex(rrp->peers->mutex); */ |