113 lines
2.0 KiB
Markdown
113 lines
2.0 KiB
Markdown
![]() |
# Module ngx-event-timer-module
|
||
|
---
|
||
|
## Instructions
|
||
|
|
||
|
Independent timer for nginx
|
||
|
|
||
|
## Directives
|
||
|
|
||
|
Syntax : worker_timers number;
|
||
|
Default : worker_timers 1024;
|
||
|
Context : events
|
||
|
|
||
|
Sets the maximum number of timers that can be used in worker process.
|
||
|
|
||
|
events {
|
||
|
...
|
||
|
worker_timers 1024;
|
||
|
}
|
||
|
|
||
|
## API
|
||
|
|
||
|
**header file**
|
||
|
|
||
|
For using this API, You should include the header file as below:
|
||
|
|
||
|
#include "ngx_event_timer_module.h"
|
||
|
|
||
|
**registe domain**
|
||
|
|
||
|
ngx_int_t ngx_event_timer_add_timer(ngx_msec_t tv,
|
||
|
ngx_timer_handler_pt h, void *data);
|
||
|
|
||
|
- return value:
|
||
|
|
||
|
return timerid for successd, NGX_ERROR for failed.
|
||
|
|
||
|
Error:
|
||
|
|
||
|
- h is NULL
|
||
|
- not enough timer for assigned
|
||
|
|
||
|
- paras:
|
||
|
|
||
|
- tv : timer interval to trigger handler
|
||
|
- h : timer handler
|
||
|
- data : data of h para
|
||
|
|
||
|
Register a timer handler, timer interval is tv, measured by millisecond. When timer triggered, h will be called, using data as function parameters.
|
||
|
|
||
|
h's protype is:
|
||
|
|
||
|
typedef void (* ngx_timer_handler_pt)(void *data);
|
||
|
|
||
|
- return value:
|
||
|
|
||
|
None
|
||
|
|
||
|
- paras:
|
||
|
|
||
|
- data: data set in ngx\_event\_timer\_add\_timer, for paras transmit
|
||
|
|
||
|
**del timer**
|
||
|
|
||
|
void ngx_event_timer_del_timer(ngx_uint_t timerid);
|
||
|
|
||
|
- return value:
|
||
|
|
||
|
void
|
||
|
|
||
|
- paras:
|
||
|
|
||
|
- timerid: return by ngx\_event\_timer\_add\_timer
|
||
|
|
||
|
Deregister timer handler.
|
||
|
|
||
|
## Build
|
||
|
|
||
|
cd to NGINX source directory & run this:
|
||
|
|
||
|
./configure --add-module=/path/to/nginx-toolkit-module/
|
||
|
make && make install
|
||
|
|
||
|
## Example
|
||
|
|
||
|
See t/ngx\_event\_timer\_test\_module.c as reference
|
||
|
|
||
|
Build:
|
||
|
|
||
|
./configure --add-module=/path/to/nginx-toolkit-module/t/ --add-module=/path/to/nginx-toolkit-module/
|
||
|
make && make install
|
||
|
|
||
|
Configure:
|
||
|
|
||
|
location /event_timer_test/ {
|
||
|
event_timer_test;
|
||
|
}
|
||
|
|
||
|
Test:
|
||
|
|
||
|
add timer
|
||
|
|
||
|
curl -XPOST -v "http://127.0.0.1/event_timer_test/timer?time=3s"
|
||
|
|
||
|
Test module will start a timer when process init. It will log after 3 seconds, set in args:
|
||
|
|
||
|
2016/12/10 18:48:37 [error] 20295#0: event timer test timer handler
|
||
|
|
||
|
del timer
|
||
|
|
||
|
curl -XDELETE -v "http://127.0.0.1/event_timer_test/timer?timerid=1"
|
||
|
|
||
|
Test module will stop a timer whose timerid is 1
|