当前位置: 技术问答>linux和unix
如何定时将变量设置为0
来源: 互联网 发布时间:2016-06-17
本文导语: 现有一服务器端程序,需要统计每日连接数并写入日志。我用一变量统计连接数,每日0点一过需将该变量重置为0, 1.如何实现比较好呢?我打算用setitimer,每500毫秒触发一次检查是否需要重置该变量,但不知是否会...
现有一服务器端程序,需要统计每日连接数并写入日志。我用一变量统计连接数,每日0点一过需将该变量重置为0,
1.如何实现比较好呢?我打算用setitimer,每500毫秒触发一次检查是否需要重置该变量,但不知是否会占用较多CPU时间?
2.关于写日志现在的做法是每收到一个连接就将连接数加一并写入日志,这样做文件操作过于频繁,如何高效记录呢?
请高手解答
1.如何实现比较好呢?我打算用setitimer,每500毫秒触发一次检查是否需要重置该变量,但不知是否会占用较多CPU时间?
2.关于写日志现在的做法是每收到一个连接就将连接数加一并写入日志,这样做文件操作过于频繁,如何高效记录呢?
请高手解答
|
可以在程序中加一个定时器,
每隔一段时间就检查一下。检查连接数和系统时间。
检查到系统时间为0点,就设置连接数为0。
如果不关机,可以一天只写一次连接数到日志中。
每隔一段时间就检查一下。检查连接数和系统时间。
检查到系统时间为0点,就设置连接数为0。
如果不关机,可以一天只写一次连接数到日志中。
|
1.太频繁吧?不是说每日0点。
2.用个链表先buffer, 达到一定数量,才把它们写到log.
2.用个链表先buffer, 达到一定数量,才把它们写到log.
|
设置变量为0是很容易的。
现在就是怎样理解楼主的定时这个词。
使用定时器,还是check 本地机器时间,还是用其他的参照,都是可以的。
现在就是怎样理解楼主的定时这个词。
使用定时器,还是check 本地机器时间,还是用其他的参照,都是可以的。
|
申请 资源立即 初始化
|
1.隔一段时间就检查一下系统时间 如果是0点 就把变量赋0
2.用楼上说的 先用链表保存 达到一定数量后 再一次写入log
2.用楼上说的 先用链表保存 达到一定数量后 再一次写入log