我正在做一个基于api键的调用限制器,我在redis中保留调用计数器,其中key是我的api键,value是计数器。在达到阈值或允许对该键的调用后,我抛出一条消息,说明已达到配额或其他内容。它工作正常,响应也很快,但问题是我无法访问api服务器的响应状态,因此即使响应为500,调用计数器也会增加。现在,我需要做的是,增加计数器只有当我得到状态码2.x.x,但我只能捕获响应 ngx.status
在 body_filter_by_lua_file
但在这个指令中,我无法连接到redis或postgres。它抛出 failed to run body_filter_by_lua*: attempt to yield across C-call boundary
错误,但是我可以在 content_by_lua_file
但无法访问响应状态。希望我说清楚。
ps:我正在使用最新的openresty和LuaResty redis
暂无答案!
目前还没有任何答案,快来回答吧!