RP: use persistent per-thread Request object

This commit is contained in:
2024-02-21 14:37:48 -03:00
parent 9c5eb45d95
commit 166f428cd1

View File

@@ -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;
}
}