存档

文章标签 ‘timeout’

定时器(Timer)的实现

2010年3月22日 4 条评论

本文是继前面写过的《谈事件驱动模型中的“超时”(Timeout)处理》的第二篇,主要谈一谈事件驱动模型超时处理中用到的定时器的实现,以及如何用定时器来处理事件驱动模型中的超时事件。

下面就从以下几个方面谈一下定时器:
1. 什么是定时器?
定时器,又称Timer,顾名思义,它是用来在指定的时刻完成特定任务的一种工具的抽象。

2. 定时器是干什么用的?
在程序中,定时器常被用来完成两类任务,一种是周期性的任务,就是每隔指定的时间执行一次的任务,另一种是在特定时刻要执行的任务,就是只在某一个特定的时刻执行,而且只执行一次的任务。
举个生活中的例子,闹钟,相信大家都不陌生,比如我们定了每天早上八点起床的闹钟,然后它就会在每天八点这个特定的时刻执行响铃这个任务,来叫我们起床,这就是上面讲到的第一种类型的定时器任务。再一个例子,就是日历(用过谷歌日历的读者朋友应该知道),我们在谷歌日历中制定一段时间的行程安排,它在每天那个特定的时刻就会提醒我们做这一时刻该做的事,这就是上面讲的第二种类型的定时器任务。 阅读全文…

谈事件驱动模型中的“超时”(Timeout)处理

2010年3月18日 2 条评论

写在最前面:本文是作者在开发爬虫程序时的一些体会,分享一下,希望能给读者朋友一点点帮助。

通常,在事件驱动模型的程序中,会有一个事件处理模块,我们称之为EventProcessor,还会有一个事件检测模块,我们称之为EventMonitor。下面是一般的处理流程:
(1)EventProcessor在发出对某一个事件的请求后,不会去等待事件结果的返回,而是返回去做其它的工作
(2)当EventMonitor模块收到上述事件的返回结果后的,它就会发消息通知EventProcessor
(3)EventProcessor收到消息后的,开始处理上述事件的结果 阅读全文…