大部分程序会有一些需要周期执行的事情,也有一些需要在程序启动后执行一次的事情。很明显这类事情和时间有关,因为它们都需要在特定时间发生。这类需要执行的逻辑可以由时间事件发生器触发。
时间事件发生器
时间事件发生器是挂载在虚拟根VirtualRoot上的一个组件,它负责在特定的时间将特定类型的事件发布到系统总线上去。时间事件发生器会发布的事件有:
HasBoot1SecondEvent
HasBoot2SecondEvent
HasBoot5SecondEvent
HasBoot10SecondEvent
HasBoot20SecondEvent
HasBoot1MinuteEvent
HasBoot2MinuteEvent
HasBoot5MinuteEvent
HasBoot10MinuteEvent
HasBoot20MinuteEvent
HasBoot50MinuteEvent
HasBoot100MinuteEvent
HasBoot24HourEvent
Per1SecondEvent
Per2SecondEvent
Per5SecondEvent
Per10SecondEvent
Per20SecondEvent
Per1MinuteEvent
Per2MinuteEvent
Per5MinuteEvent
Per10MinuteEvent
Per20MinuteEvent
Per50MinuteEvent
Per100MinuteEvent
Per24HourEvent
以上26种时间事件的设计灵感来源于人民币币值的设计,具体为什么是这些数值我们不做深究,实践证明这些数值正是开源矿工所需要的。
由谁发出这些时间事件?
这些消息发送到什么地方去?
发布到系统总线上去。每一个系统都应该有自己内部的系统总线,时间事件消息正是发布到系统自己内部的总线上去的。系统内部的各组件根据自己的需求从总线上订阅事件修建事件消息所行走的路径。
力:走那条线程驱动这类事件?