在 2014年11月15日星期六UTC+8上午5时23分31秒,agentzh写道:
Hello!
2014-11-13 19:39 GMT-08:00 ruiyin chen:
> 1) nginx模块开发里面支持向多个upstream发请求吗?就像location_capture_multi这样并发平行的发请求?
正如我之前的回复所指示的,建议使用 ngx_lua 模块,而不是自己从零编写 nginx C 模块。编写 nginx C
模块本身就是一件比较困难的事情(hello world 性质的模块除外)。
我们这几年之所以投入这么多时间和精力在 ngx_lua 模块上,就是为了避免从零编写 nginx C 模块。
> 2)是否有比较好用的开源的c++纯异步框架?
>
貌似这个问题并不适合在这个邮件列表里面提。
> 不好意思,因为我google论坛不怎么会用,总是错发了,又删除,
请尽量使用邮件来发贴,引用一下首页里的提示:
“订阅方法:发送空白邮件到地址 openresty...@googlegroups.com 即可完成订阅。
发贴:在完成订阅之后,直接发送你的讨论邮件到地址 open...@googlegroups.com”
因为这个讨论组同时是一个邮件列表,所以请尽量不要反复编辑原来的贴子,因为这会触发大同小异的邮件反复发送给大家。谢谢合作!
> 因为不是很清楚cpature_multi的内部实现,想请教一下!
如果不清楚内部实现,可以仔细阅读对应的源码。这毕竟都是开源的东西 :)
如果在阅读源码过程中有比较具体的问题,并且经过你自己的努力也无法解决,也欢迎在这里提问 :)
Regards,
-agentzh
感谢春哥,我看了 ngx_http_lua_ngx_location_capture_multi的源码,知道这个最终调用的是ngx_http_lua_subrequest,但我不知道接收响应是那个函数,是ngx_http_lua_handle_subreq_responses吗?看接收响应的代码不是很懂,看着好像多个请求的响应是在同一个协程里处理的,是这样吗,还是我理解错误了。
coctx = ctx->cur_co_ctx;
co = coctx->co;
for (index = 0; index < coctx->nsubreqs; index++) {
dd("summary: reqs %d, subquery %d, pending %d, req %.*s",
(int) coctx->nsubreqs,
(int) index,
(int) coctx->pending_subreqs,
(int) r->uri.len, r->uri.data);
。。。。。。。。。。。。。。。