• 利用libevent的timer实现定时器interval


    在不怎么了解libevent的情况下,看到timer这个关键字想到可以用来做定时任务,官方资料也不齐全,就从代码里看到了TIMEOUT字样,这么说来应该是支持timeout了,那interval呢,貌似没有发现更好的办法,姑且在timeout里再timeout一次吧,留代码备用。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <event2/event.h>
     4 
     5 typedef struct {
     6         struct timeval tv;
     7         struct event * ev;
     8 } timer_param_t;
     9 
    10 
    11 void timer_task(int fd, short events, void * ctx) {
    12         printf("...
    ");
    13 
    14         timer_param_t * param = (timer_param_t *) ctx;
    15         evtimer_add(param->ev, &param->tv);
    16 }
    17 
    18 int main() {
    19         struct event_base * base;
    20         base = event_base_new();
    21         if(!base) {
    22                 printf("open event base error
    ");
    23                 return -1;
    24         }
    25         timer_param_t * param = calloc(1, sizeof(timer_param_t));
    26         param->ev = evtimer_new(base, timer_task, param);
    27         param->tv.tv_sec = 1;
    28         evtimer_add(param->ev, &param->tv);
    29         int err = event_base_dispatch(base);
    30         printf("error = %d
    ", err);
    31         return 0;
    32 }

     编译:gcc -o timer timer.c -levent

  • 相关阅读:
    $().each和$("input[name='XXX']")
    常规JS操作
    日期大小比较JS方法
    集合迭代
    技术点1
    GItHub pages 的使用方法
    node.js是做什么的?
    jQuery基础:下(事件及动画效果)
    jQuery基础:上(样式及DOM操作)
    页码demo制作
  • 原文地址:https://www.cnblogs.com/jieyuefeng/p/3289757.html
Copyright © 2020-2023  润新知