利用libevent的timer实现定时器interval
在不怎么了解libevent的情况下,看到timer这个关键字想到可以用来做定时任务,官方资料也不齐全,就从代码里看到了TIMEOUT字样,这么说来应该是支持timeout了,那interval呢,貌似没有发现更好的办法,姑且在timeout里再timeout一次吧,留代码备用。
#include <stdio.h>
#include <stdlib.h>
#include <event2/event.h> typedef struct {
struct timeval tv;
struct event * ev;
} timer_param_t; void timer_task(int fd, short events, void * ctx) {
printf("...\n"); timer_param_t * param = (timer_param_t *) ctx;
evtimer_add(param->ev, ¶m->tv);
} int main() {
struct event_base * base;
base = event_base_new();
if(!base) {
printf("open event base error\n");
return -;
}
timer_param_t * param = calloc(, sizeof(timer_param_t));
param->ev = evtimer_new(base, timer_task, param);
param->tv.tv_sec = ;
evtimer_add(param->ev, ¶m->tv);
int err = event_base_dispatch(base);
printf("error = %d\n", err);
return ;
}
编译:gcc -o timer timer.c -levent
利用libevent的timer实现定时器interval的更多相关文章
- Timer(定时器)
默认情况下,在每个采样器之前没有任何延时,这样不能很好的模拟现实生活中人们访问网页,因为现实生活中人们点击一个请求后,会有一定的时间,然后再点击下一个请求,JMeter提供了定时器来模拟这种行为. 定 ...
- [Erlang09]Erlang gen_server实现定时器(interval)的几种方法及各自的优缺点?
方法1: %%gen_server:部分call_back function. -define(TIME,1000). init([]) –> erlang:send_after(?TIME,s ...
- [Java]利用javax.swing.Timer类在窗口上实现动画效果
javax.swing.Timer类在创建时需要指定时间间隔和定时器到时间需要执行的动作,即ActionListener. Timer timer = new Timer(100, taskPerfo ...
- 利用缓存、Timer间隔时间发送微信的实例,很有用的例子
//Class WechatOfferExcutor 此类为微信触发类,属于上层调用类,其中有用到用静态变量缓存offer信息,Task异步执行发送方法等 using Newtonsoft.Json. ...
- Jmeter之集合点(Synchronizing timer 同步定时器)
1.集合点介绍 LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的.jmeter中使用Synchronizing Timer实 ...
- Timer应用之Interval优化
开发中, 有时有这种场景,使用 Timer 的 Timer_Elapsed 间隔 执行(如:从数据库)获取数据 与 现有 应用服务器中的 静态变量数据(起到缓存的目的)做 对比 ,若有改变,则 更新 ...
- C#多线程编程之:Timer(定时器)使用示例
Timer类:设置一个定时器,定时执行用户指定的函数.定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数. 构造函数:Timer(TimerCallback callback, object ...
- 利用windows服务+timer或者windows任务计划程序+控制台进行进行每日邮件推送
1.邮件发送代码 using System.Text; using System.Net; using System.Net.Mail; using System.Reflection; using ...
- Java Timer触发定时器
XML: <!-- Java Timer定时 --> <!-- <bean id="shortUrlTask" class=" com.sprin ...
随机推荐
- android与javascript相互调用
下面这一节来介绍android和javascript是怎么相互调用的,这样我们的UI界面设计起来就简单多了,而且UI设计起来也可以跨平台.现在有好多web app前台框架了,比如sencha和jque ...
- java 截取字符串 拆分字符串
例如 想要吧"90_python" 分成“90” 和“python” 从网上看到的方法: public class splitTest { public static void m ...
- mysql分表方法-----MRG_MyISAM引擎分表法
一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来具体说说分表的一些方法.眼下我所知道的方法都是MYISAM的,INNODB怎样做分表而且保留事务和外键,我还不是 ...
- ADT下载地址整理
參考以下文章 http://developer.android.com/tools/sdk/eclipse-adt.html 整理了官网的下载地址 http://dl.google.com/andro ...
- LSI SAS 2308配置操作
介绍LSISAS2308的配置操作 3.1 登录CU界面 介绍登录LSISAS2308的CU配置界面的方法. 3.2 创建RAID 介绍在LSISAS2308扣卡上创建RAID的操作方法. 3.3 配 ...
- URL与URI的区别
URI—Universal Resource Identifier通用资源标志符Web上可用的每种资源如HTML文档.图像.视频片段.程序等都是一个来URI来定位的URI一般由三部组成①访问资源的命名 ...
- JAVA-FileInputStream之read方法
今天一个友询问FileInputStrem方法的read()和read(byte b) 方法为什么都用-1来判断读文件结束的问题,在此和大家一起学习下. 关于FileInputStream 它用于读取 ...
- Asp.Net--下载文件
实现方式1: protected void DownLoad_Click(object sender, EventArgs e) { //获取要下载的文件 string filename = Serv ...
- Retinex processing for automatic image enhancement 翻译
Retinex processing for automatic image enhancement 摘要: 最近六七年来,人们从新燃起了对Retinex computation的兴趣,特别是在它对图 ...
- php基础之三 数组
一.正则表达式: 1. "/"代表界定符, "^"代表开始符号 "&"结束符号 eg: $reg="/(13[0-9] ...