Nginx---定时器<简单说明>

本文探讨了Nginx中的事件处理与定时机制,详细介绍了两种不同的超时检测方案:一种是设置固定的系统超时检测时间间隔;另一种是根据最近即将超时的事件对象来确定检测时间。
void
ngx_process_events_and_timers(ngx_cycle_t *cycle)
{
    ngx_uint_t  flags;
    ngx_msec_t  timer, delta;

/*一种为常规的定时检测机制,也就是设置定时器,
每过一定的时间就对红黑树管理的所有事件对象进行一次超时检测;
另一种是过距离当前最快发生超时的事件对象的时间就进行一次超时检测。
*/
    if (ngx_timer_resolution) {//方案一设置固定时间,系统超时检测
        timer = NGX_TIMER_INFINITE;
        flags = 0;

    } else {//方案二
        timer = ngx_event_find_timer();
        flags = NGX_UPDATE_TIME;
	}
	
	//...
	//...
	
	/*timer 作为epoll_ctl的第三个参数定时时间传入. 
	两种方案的定时时间都存入红黑树中进行管理*/
	
	//...
	//...
}

参考:
http://geek.youkuaiyun.com//news/detail/3119
http://www.aqee.net/reverse-engineering-a-d-link-backdoor/
http://www.devttys0.com/2013/10/reverse-engineering-a-d-link-backdoor/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值