3.1.13 时间管理

来源:互联网 发布:教师网络研修平台登录 编辑:程序博客网 时间:2024/06/01 09:44

postfix对时间的管理表现在以下几个方面:

 

         1qmgr模块和pickup模块需要被定时唤醒,这通过3.7.4节的定时事件处理机制实现。

         2除master进程外的模块可能会被daemon_timeout参数限定存活时间,默认18000秒。该功能由watchdog计时器实现。watchdog封装alarm系统调用。

         3postfix优先发送更久没有被发送的“老”邮件,以避免收件人等待太久。所以要对邮件进行计时,即记录邮件生成时间等,需要使用取得当前时间的函数。

         4需要确定I/O多路复用函数中的超时参数值。

   

         Unix有众多的记录时间的数据结构,最简单的是time_t:

         typedeflong time_t;

         time_t记录从1970年1月1日起到当前的秒数。

 

         timeval结构体可以以微妙级精度更精确的表示时间:

         structtimeval{

                   time_ttv_sec;

                   suseconds_ttv_usec;//微秒精度

         }

   

         取得当前时间的函数有time和gettimeofday,分别返回time_t或timeval格式的时间。

 

         postfix在事件处理程序event.c的初始化函数event_init中使用time函数记录了当前时间。这里没有强调精度,因为这里取得时间的目的仅是保证event_init函数不会被多次运行。

 

         构造watchdog的alarm函数也用秒为单位计时。

 

         I/O多路复用函数的超时参数使用timeval结构体。

 

         gettimeofday被用在记录smtp MAIL命令处理时间等众多场合。
0 0
原创粉丝点击