イベント処理

構造

ngx_event_t

ngx_event_t

イベントループに追加されるイベント構造

void *data

イベントハンドラへ渡すためのデータへのポインタ。通常、これはngx_connection_tへのポインタです

void (*ngx_event_handler_pt)(ngx_event_t *ev) handler

イベントが引き起こされた場合に呼ばれるハンドラ関数

ngx_log_t *log

イベントによって使われるログオブジェクトへのポインタ

機能

ngx_add_timer

void ngx_add_timer(ngx_event_t *ev, ngx_msec_t timer)

NGINXイベントループにタイマーを追加します。通常ソケット上のタイムアウトのために使われますが、一般的なタイマーとしても使うことができます。

パラメータ:
  • ev – タイムアウトを生成するためのイベントオブジェクト
  • timer – タイムアウトのミリ秒

例:

この例はダミーの接続を使って5秒後にタイマーイベントを引き起こすでしょう。

static ngx_event_t my_timer;
static ngx_connection_t dumb_con;

ngx_int_t ngx_my_init_process(ngx_cycle_t *cycle)
{
    my_timer.handler = ngx_timer_fired;
    my_timer.log = cycle->log;
    my_timer.data = &dumb_con;
    dumb.fd = (ngx_socket_t) -1;
}

void ngx_timer_fired(ngx_event_t *ev)
{
    ngx_log_error(NGX_LOG_DEBUG, ev->log, 0, "Event fired!");
}

ngx_del_timer

void ngx_event_del_timer(ngx_event_t *ev)

NGINXイベントループからタイマーを削除する

パラメータ:
  • ev – The event object the timer is one
TOP
inserted by FC2 system