首页 > 系统服务 > 详细

Linux CPP程序的三种实现定时任务的方法

时间:2014-03-14 05:13:46      阅读:706      评论:0      收藏:0      [点我收藏+]

我的定时任务中的 iostream等会core down,很苦恼。

今天发现我的定时任务里cout竟然挂掉了,然后socket的write和read会被阻塞了,好奇怪的事情,redis也阻塞着。

然后师傅看了我的程序,认为我的定时任务是使用sigalarm定时,然后在信号中断里做业务,而我的业务太多了,一般他们不在中断中做太多业务,怀疑我的cout、fout或者redisCommand的上下文被破坏掉了,建议我不要这么做。


现在我总结几个做定时任务的方法吧:

一、多线程,另起一个线程,假如30s做定时时间,那么sleep 30s,然后做相应动作

二、main函数里打时间戳,每次进入到要做业务的代码块时判断时间是否大于30s,如果大于,就做相应业务,然后更新时间

三、signal,就是我现在做的方法,只不过在中断程序里设置标志,把要定时执行的任务放在main函数里,每次进入时判断标志决定是否执行。

Linux CPP程序的三种实现定时任务的方法,布布扣,bubuko.com

Linux CPP程序的三种实现定时任务的方法

原文:http://blog.csdn.net/bg2bkk/article/details/21171337

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!