ngx.now会使用Nginx的缓存时间返回当前时间戳,那么如果nginx处于shutting down状态,请问如果多次调用ngx.now(),还会不会正常更新当前时间? --
两个ngx.now()之间如果没有任何网络事件被触发,那么他们获取到的时间就都是一样的。2015-09-23 14:49 GMT+08:00 牧童 <ssd...@gmail.com>:ngx.now会使用Nginx的缓存时间返回当前时间戳,那么如果nginx处于shutting down状态,请问如果多次调用ngx.now(),还会不会正常更新当前时间? -- -- MembhisMy github: https://github.com/membphisOur Book: OpenResty Best Practices
意思是说,即使处于shutting down状态的进程,只要有网络时间发生都会更新时间缓存?在 2015年9月23日星期三 UTC+8下午3:17:46,YuanSheng Wang写道:两个ngx.now()之间如果没有任何网络事件被触发,那么他们获取到的时间就都是一样的。2015-09-23 14:49 GMT+08:00 牧童 <ssd...@gmail.com>:ngx.now会使用Nginx的缓存时间返回当前时间戳,那么如果nginx处于shutting down状态,请问如果多次调用ngx.now(),还会不会正常更新当前时间? -- -- MembhisMy github: https://github.com/membphisOur Book: OpenResty Best Practices --
Hello! 2015-09-23 15:16 GMT+08:00 YuanSheng Wang <yuan...@iresty.org>: > 两个ngx.now()之间如果没有任何网络事件被触发,那么他们获取到的时间就都是一样的。 > 不一定是网络事件,定时器事件等一切 epoll/kqueue/poll 监听到的事件,都会触发时间缓存的更新。 另外,使用 ngx.update_time() 可以强制更新 nginx 的时间缓存: https://github.com/openresty/lua-nginx-module#ngxupdate_time On Wed, Sep 23, 2015 at 4:34 PM, YuanSheng Wang wrote: > 处于shutting down状态的细节,我不太敢确定。 > 在缓存时间处理方面,优雅退出模式和正常服务模式是完全一样的。如果这里不一样就不是“优雅退出”了,呵呵。 > 如果你需要准确不用怀疑的时间,可以使用lua里面的时间,参考:http://www.lua.org/manual/5.1/manual.html#pdf-os.time > 值得一提的是,应当避免在请求上下文中使用 os.time() 这样的标准 Lua 时间 API,因为这些 API 一般都会造成昂贵的系统调用。 Regards, -agentzh
多谢春哥答疑!