《深入理解Nginx 模块开发与架构解析》笔记之定时器
来源:互联网 发布:ubuntu更改启动顺序 编辑:程序博客网 时间:2024/06/05 02:22
Nginx 定时器
Nginx 对时间的管理
Nginx为了提高速度,自己实现了对时间的管理,设计了数据结构和一些变量,存储在内存中。每一个进程都会单独地管理当前的时间。
ngx_time_t
typedef struct { //格林威治时间1970年1月1日凌晨0点0分0秒到当前时间的秒数 time_t sec; //sec成员只能精确到秒,msec则是当前时间相对sec的毫秒偏移量 ngx_uint_t msec; //时区 ngx_int_t gmtoff;} ngx_time_t;
ngx_tm_t
struct tm { int tm_sec; /* 秒–取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值区间为[0,23] */ int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */ int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */ int tm_year; /* 年份,其值从1900开始 */ int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ int tm_yday; /* 从每年的1月1日开始的天数 - 取值区间为[0,365],其中0代表1月1日,1代表1月2日,一次类推 */ int tm_isdst; /* 夏令时标识符。在实行夏令时的时候,tm_isdst为正;不实行夏令时的时候tm_isdst为0;否则为负 */};typedef struct tm ngx_tm_t;#define ngx_tm_sec tm_sec#define ngx_tm_min tm_min#define ngx_tm_hour tm_hour#define ngx_tm_mday tm_mday#define ngx_tm_mon tm_mon#define ngx_tm_year tm_year#define ngx_tm_wday tm_wday#define ngx_tm_isdst tm_isdst
从上面的定义可以看出,ngx_tm_t和struct tm结构是一模一样的。
Nginx缓存时间的操作函数
定时器的实现
定时器的结构是一棵红黑树。ngx_event_timer_rbtree就是所有定时器组成的红黑树,而ngx_event_timer_sentinel就是这棵红黑树的哨兵节点。这棵红黑树采用关键字为事件的超时时间,因此,最左下角的节点就是最有可能超时的事件。
定时器操作函数
0 0
- 《深入理解Nginx 模块开发与架构解析》笔记之定时器
- 《深入理解Nginx:模块开发与架构解析》笔记
- 《深入理解Nginx 模块开发与架构解析》笔记之epoll事件模块
- 深入理解Nginx:模块开发与架构解析
- 《深入理解Nginx模块开发与架构解析》勘误
- 深入理解Nginx 模块开发与架构解析-陶辉 读书笔记
- 《深入理解Nginx-模块开发与架构解析》
- 深入理解Nginx:模块开发与架构解析 读书笔记
- 推荐我的新书《深入理解Nginx:模块开发与架构解析》
- 【读书笔记】深入理解Nginx模块开发与架构解析(一)
- 【读书笔记】深入理解Nginx模块开发与架构解析(二)
- Nginx的命令行控制-转自《深入理解Nginx模块开发与架构解析》第2版
- 《深入理解Nginx》阅读与实践(一):Nginx过滤模块开发与实例
- 《深入理解Nginx》之HTTP模块
- nginx模块开发-定时器模型
- 笔记一 深入理解体系与架构
- 深入理解nginx chap3 开发一个简单的HTTP模块
- jQuery源码解析(架构与依赖模块)一、理解架构
- ubuntu-64位 error while loading shared libraries: libuuid.so.1: wrong ELF class: ELFCLASS64
- 逆序对的求解
- 如何实现HTTP DIGEST认证
- 显示虚线
- uva 10391 Compound Words(查找)
- 《深入理解Nginx 模块开发与架构解析》笔记之定时器
- 使用 iOS 8 Spring Animation API 创建动画
- Python学习资料汇总
- AJAX向服务器发送请求并返回json数据
- java 对数字输出格式规范的函数 DecimalFormat
- 【Android应用开发技术:应用调试】ADB
- FastDFS 5.0.1 Nginx+fastdfs_nginx_model 1.15 vs HDFS httpFS hadoop2.7.1 http get 小文件性能对比
- HTTP基本认证(Basic Authentication)的JAVA示例
- HDU 5335 walk out(特殊bfs)