best way to get a 1-second timer-tick?
Arnaud GRANAL
serphen at gmail.com
Sat Apr 23 14:39:26 MSD 2011
2011/4/23 Maxim Dounin <mdounin at mdounin.ru>:
> Hello!
>
Hi!
> On Fri, Apr 22, 2011 at 09:09:15PM +0300, Arnaud GRANAL wrote:
>
>> On Fri, Apr 22, 2011 at 9:02 PM, Neil Mckee <neil.mckee.ca at gmail.com> wrote:
>> > Hello,
>> >
>>
>> Hi Neil,
>>
>> > I have written a module to implement sFlow in nginx (nginx-sflow-module.googlecode.com). I'm simulating a 1-second timer-tick by assuming that the request handler will be called at least once per second. That's probably a safe assumption for any server that would care about sFlow monitoring, but I expect there's a better way...
>> >
>> > I tried asking for a timer callback like this:
>> >
>> > ngx_event_t *ev = ngx_pcalloc(pool, sizeof(ngx_event_t));
>> > ev->hander = ngx_http_sflow_tick_event_hander;
>> > ngx_add_timer(ev, 1000);
>> >
>> > but (like most russian girls) the event never called me back. It looks like I might have to hang this on a file-descriptor somehow, but that's where I'm getting lost. Any pointers would be most appreciated.
>> >
>>
>> The main thing is that you should use ngx_add_event() here instead of
>> callocing the event struct directly and be careful of what you do with
>> ngx_http_finalize_request.
>
> No, you are wrong.
>
Then i'll know for the next guy :o)
A.
More information about the nginx-devel
mailing list