Openresty Lua:收到来自api服务器的响应后无法连接到Redis

问题描述

我正在基于api密钥进行呼叫限制,并且我在redis中保留呼叫计数器,其中key是我的api密钥,value是计数器。在达到该密钥的阈值或允许的调用后,我会抛出一条消息,说明您的配额已达到或达到某程度。它可以正常工作并且响应速度很快,但问题是我无法访问api服务器的响应状态,因此即使响应为 500 ,通话计数器就会增加。 现在,我需要做的是,仅当我得到状态代码 2.xx 时,才增加计数器,但是我只能在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中的redis,但是无法访问响应状态。希望我说清楚。

PS:我正在使用最新的openresty和lua-resty-redis

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)