微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。