-
Notifications
You must be signed in to change notification settings - Fork 195
Closed
Description
Пытаюсь дёрнуть постгрес из njs:
function dbtst(r) {
r.subrequest('/dbtst/302834/', '', function(res) {
r.warn('DEBUG: res.status=' + res.status + ';');
});
}
Получаю в логе:
2018/06/29 12:44:55 [error] 30069#30069: *149 postgres: ngx_postgres module does not support subrequests in memory, client: 127.0.0.1, server: localhost, request: "GET /jstst/ HTTP/1.1", subrequest: "/dbtst/302834/", host: "localhost:8009"
2018/06/29 12:44:55 [warn] 30069#30069: *149 js: DEBUG: res.status=500;
В коде ngx_postgres есть такие буковки:
if (r->subrequest_in_memory) {
/* TODO: add support for subrequest in memory by
* emitting output into u->buffer instead */
ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
"postgres: ngx_postgres module does not support"
" subrequests in memory");
dd("returning NGX_HTTP_INTERNAL_SERVER_ERROR");
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}
В то же время, из lua модуля подобный подзапрос работает. Но lua как раз пытаюсь заменить njs'ом. Как правильнее решить проблему? Понятно, что идеально было бы допилить ngx_postgres, но просить агента ж бесполезно, а сам я врядли смогу сделать приемлемый патч.
Возможно ли добавить опцию в r.subrequest, чтобы можно было делать не in-memory подзапросы?