博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用libevent的timer实现定时器interval
阅读量:6279 次
发布时间:2019-06-22

本文共 1136 字,大约阅读时间需要 3 分钟。

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

1 #include 
2 #include
3 #include
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("...\n");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\n");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\n", err);31 return 0;32 }

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

转载于:https://www.cnblogs.com/jieyuefeng/p/3289757.html

你可能感兴趣的文章
SVN 命令笔记
查看>>
修复Postfix 的Relay access denied问题
查看>>
检验手机号码
查看>>
重叠(Overlapped)IO模型
查看>>
ffmpeg study 1
查看>>
Git使用教程
查看>>
使用shell脚本自动监控后台进程,并能自动重启
查看>>
Flex&Bison手册
查看>>
MySQL 5.6 for Windows 解压缩版配置安装
查看>>
solrCloud+tomcat+zookeeper集群配置
查看>>
/etc/fstab,/etc/mtab,和 /proc/mounts
查看>>
Apache kafka 简介
查看>>
socket通信Demo
查看>>
技术人员的焦虑
查看>>
js 判断整数
查看>>
建设网站应该考虑哪些因素
查看>>
mongodb $exists
查看>>
js实现页面跳转的几种方式
查看>>
sbt笔记一 hello-sbt
查看>>
常用链接
查看>>