Open ygm521 opened 6 years ago
origin nginx ngx_http_do_read_client_request_body did not limit upload rate , if in function ngx_http_do_read_client_request_body limit upload rate, the cpu is 100%, how did you do it ? whats the meanning of xxx , thanks!
static void /* {{{ ngx_http_read_upload_client_request_body_handler */ ngx_http_read_upload_client_request_body_handler(ngx_http_request_t *r) { ngx_int_t rc; ngx_http_upload_ctx_t *u = ngx_http_get_module_ctx(r, ngx_http_upload_module); ngx_event_t *rev = r->connection->read; ngx_http_core_loc_conf_t *clcf; if (rev->timedout) { if(!rev->delayed) { r->connection->timedout = 1; upload_shutdown_ctx(u); ngx_http_finalize_request(r, NGX_HTTP_REQUEST_TIME_OUT); return; } //xxx rev->timedout = 0; rev->delayed = 0; if (!rev->ready) { clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); ngx_add_timer(rev, clcf->client_body_timeout); if (ngx_handle_read_event(rev, clcf->send_lowat) != NGX_OK) { upload_shutdown_ctx(u); ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); } return; } } else{ // xxx if (r->connection->read->delayed) { clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0, "http read delayed"); if (ngx_handle_read_event(rev, clcf->send_lowat) != NGX_OK) { upload_shutdown_ctx(u); ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); } return; } } //读取请求的包体 rc = ngx_http_do_read_upload_client_request_body(r); if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { upload_shutdown_ctx(u); ngx_http_finalize_request(r, rc); } } /* }}} */
origin nginx ngx_http_do_read_client_request_body did not limit upload rate , if in function ngx_http_do_read_client_request_body limit upload rate, the cpu is 100%, how did you do it ?
whats the meanning of xxx , thanks!