初始化
服务端消费客户端发来的消息进行分析和展示,所以这个的初始化指的是CatHomeModule的初始化
CatHomeModule依赖TcpSocketReceiver和MessageConsumer,前者用来接收客户端发送的消息,后者用来消费消息。
TcpSocketReceiver通过Messagecodec对MessageQueue中的MessageTree进行解码,还原成为MessageTree,然后通过MessageHandler调用Consumer对消息进行消费。(这个消费的过程其实是一个消息分发的过程。消息有不同的消息分析器)
消费的过程是一个周期性的过程,对应上图右边部分。一个Period代表一个周期,每个周期对应一个持续时间(duration),默认为一小时。
RealTimeConsumer是MessageConsumer的实现类,他的作用是进行实时的消费,如何实现周期性消费呢?他需要依赖PeriodManager,进行周期管理。所以在初始化MessageConsumer的过程中会初始化PeriodManager。并且开启periodmanager的守护线程,进行周期开始和结束的控制。
通过m_strategy.next(now)方法进行时间对比,返回大于零或小于零的值,来决定是开始新的周期还是结束旧的周期。这