定时事件

例子:

static ngx_connection_t dummy;

static ngx_event_t ev;

static void
ngx_http_hello_print(ngx_event_t *ev)
{
    printf("hello world\n");

    ngx_add_timer(ev, 1000);
}


static ngx_int_t
ngx_http_hello_process_init(ngx_cycle_t *cycle)
{
    dummy.fd = (ngx_socket_t) -1;

    ngx_memzero(&ev, sizeof(ngx_event_t));

    ev.handler = ngx_http_hello_print;
    ev.log = cycle->log;
    ev.data = &dummy;

    ngx_add_timer(&ev, 1000);

    return NGX_OK;

}

        这段代码将注册一个定时事件——每过一秒钟打印一次hello world。ngx_add_timer函数就是用来完成将一个新的定时事件加入定时器红黑树中,定时事件被执行后,就会从树中移除,因此要想不断的循环打印hello world,就需要在事件回调函数被调用后再将事件给添加到定时器红黑树中。 ngx_http_hello_process_init是注册在模块的进程初始化阶段的回调函数上。

         由于,ngx_even_core_module模块排在自定义模块的前面,所以我们在进程初始化阶段添加定时事件时,定时器已经被初始化好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值