大家好,我是新入坑小白,请大家多多关照。我有使用Lua的工作经验,但对nginx/openresty了解甚少(大概累计40-50小时学习)。
问题背景:我是游戏行业的,最近在研究如何利用openresty/nginx直接搭建服务器框架。选openresty是因为它,基础看起来可靠,有luajit支持,现成可用,在此不讨论。
期望实现的逻辑:接收请求后,生成闭包,丢到执行队列中,稍后由daemon协程顺序执行。期间要实现帧率控制,每次执行完队列后需要sleep,精度接近 0.0x 秒即可。(至于为什么做这些就不展开了)。
问题如题,init阶段无法启用协成,也无法sleep。看起来 ngx.thread.spawn 和 ngx.sleep 都需要有请求作为依附。
使用init_worker可以启动,但是: 1. master进程也需要服务器帧,进行集群控制等业务; 2. ngx.log竟然不再输出?
我能否使用lua的coroutine.create和其他的sleep?度娘说别的sleep是不行的,不知道coroutine.create能不能用。
求大神指教,有变通之法也行,谢谢!