glib超时定时器应该怎么做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了glib超时定时器应该怎么做?相关的知识,希望对你有一定的参考价值。

我希望做以下功能,但不知道定时器超时如何处理? 请各位大拿帮忙看看,谢谢。程序功能:1、收集从多个服务器(比如:N个)上传送过来的数据文件,当收齐所有数据时,会通知下一个模块统一处理。2、但有可能某个服务器异常,所以希望设置一个定时器,如果定时器超时,则将已收到的文件传递给下一模块处理,并记录异常服务器ID。3、所以,正常情况下,如果已经收齐所有数据,则需要重置定时器。1、正常情况下执行函数 void normalprocess(gpointer data),2、超时情况下执行函数 void timeoutprocess();如果用glib实现上述功能,应该怎么重置定时器,g_timeout_add()没有重置定时器功能。

g_timeout_add 返回值是 source id,可以用 g_source_destroy 销毁掉。 参考技术A 谢谢~!对glib来说,我是新手,谢谢指教。

java没有session,想要五分钟没有操作的时候弹出信息,在10分钟没有再弹出信息,应该怎么做

java,没有登陆,没有session,自动回复,查询的系统,想要实现5分钟没有操作,在对话框显示已经5分钟没有操作,10分钟没有操作的时候显示太久没操作,将断开连接,应该怎么做

C/S:在用户进入系统或者点击查询后启动一个定时器,5分钟间隔,在点击查询按钮时,停止之前的定时器重启一个新的5分钟间隔定时器,定时器5分钟提示断开连接;
B/S:一样的思路,用JS setTimeOut函数实现,后台如果真的断开socket连接什么的,用ajax触发即可。追问

我用的setTimeOut,可是有点问题,这样只能一开始的时候,5分钟不操作能弹出消息,如果点击页面,操作页面一段时间之后,5分钟不操作就不会再弹出消息了,这怎么解决呢

参考技术A 很简单,用定时器。Timer类追问

我也用过Timer,请问用Timer怎么知道是5分钟没有操作呢

追答

你可以写个触发器,有操作就更新一个标注,如果5分钟了标注没变,不就是没操作吗?

参考技术B 内容无所谓,, 参考技术C 定时器,timer 参考技术D 长连还是短连?

以上是关于glib超时定时器应该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

时间轮算法

用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎么做???

java没有session,想要五分钟没有操作的时候弹出信息,在10分钟没有再弹出信息,应该怎么做

为啥线程池定时的任务在熄屏下不能执行

STM32怎么接收不定长串口数据

STM32 滴答定时器