Rescheduling of pending request after configured timeout.
New optional configuration parameter introduced: limits.reschedule_timeout. Default value 1 second. In the case when request is written to the port socket 'in advance', it is called 'pending'. On every completed request, the head of pending request is checked against reschedule timeout. If this request waiting for execution longer than timeout, it is cancelled, new port selected for this request.
This commit is contained in:
@@ -81,7 +81,8 @@ struct nxt_app_s {
|
||||
nxt_thread_mutex_t mutex; /* Protects ports queue. */
|
||||
nxt_queue_t ports; /* of nxt_port_t.app_link */
|
||||
|
||||
nxt_queue_t requests; /* of nxt_req_conn_link_t */
|
||||
nxt_queue_t requests; /* of nxt_req_app_link_t */
|
||||
nxt_queue_t pending; /* of nxt_req_app_link_t */
|
||||
nxt_str_t name;
|
||||
|
||||
uint32_t pending_workers;
|
||||
@@ -90,6 +91,7 @@ struct nxt_app_s {
|
||||
uint32_t max_pending_responses;
|
||||
|
||||
nxt_msec_t timeout;
|
||||
nxt_nsec_t res_timeout;
|
||||
|
||||
nxt_app_type_t type:8;
|
||||
uint8_t live; /* 1 bit */
|
||||
|
||||
Reference in New Issue
Block a user