我正在尝试向naxsi添加一些功能,包括在其上添加张量流支持。
我在ngx_http_dummy_init()上加载了tensorflow模型,并尝试运行它。
一切正常。但是,当我尝试在ngx_http_dummy_data_parse()中运行会话时,程序将卡在run_session()中。
成功:
void InitTFModel(void) {
tf_model = load_model("/root/model.pb");
fill_tensor(tf_model, "data", 4);
run_model(tf_model);
}
失败:
void ngx_http_dummy_uri_tf_parse(ngx_http_request_ctx_t *ctx, ngx_http_request_t *r)
{
int res;
if (!tf_model ||
!fill_tensor(tf_model, (const char *)r->unparsed_uri.data + 1, (int)r->unparsed_uri.len - 1)) {
return;
}
res = run_model(tf_model);
if (res) {
ctx->block = 1;
ctx->drop = 1;
}
}
似乎ngx_http_dummy_init()在init进程中起作用,而ngx_http_dummy_data_parse()在nginx worker进程中起作用。
我认为这就是造成这种现象的原因。
那么如何在Nginx Worker进程上运行tensorflow。