RP: use persistent per-thread Request object
This commit is contained in:
@@ -23,10 +23,17 @@ class RequestPool {
|
||||
private int m_totalWorkers;
|
||||
private TaskPool m_taskPool;
|
||||
private Logger _l;
|
||||
private Request[] m_requests;
|
||||
|
||||
this(int totalWorkers = 4) {
|
||||
this.m_totalWorkers = totalWorkers;
|
||||
this._l = getLogger();
|
||||
|
||||
for (int i = 0; i < totalWorkers + 1; i++) {
|
||||
Request rq = Request();
|
||||
// TODO: add custom fields (such as user agent)
|
||||
this.m_requests ~= rq;
|
||||
}
|
||||
}
|
||||
|
||||
void startBackground() {
|
||||
@@ -49,10 +56,10 @@ class RequestPool {
|
||||
}
|
||||
|
||||
Response m_run(PRequest request) {
|
||||
Request rq = Request();
|
||||
Request rq = this.m_requests[this.m_taskPool.workerIndex];
|
||||
rq.addHeaders(request.headers);
|
||||
|
||||
_l.debugF!"[%s] %s"(request.method, request.url);
|
||||
_l.debugF!"[%d][%s] %s"(this.m_taskPool.workerIndex, request.method, request.url);
|
||||
|
||||
Response rs;
|
||||
|
||||
@@ -70,7 +77,8 @@ class RequestPool {
|
||||
return null;
|
||||
}
|
||||
|
||||
_l.debugF!"[%s] %s result code: %d"(request.method, request.url, rs.code);
|
||||
_l.debugF!"[%d][%s] %s result code: %d"(this.m_taskPool.workerIndex, request.method, request.url, rs
|
||||
.code);
|
||||
return rs;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user