七、其他调度系统
7.1 上传数据调度系统
数据上传跟数据采集是类似的,具体区别有两点:
(1)上传设备较少,一般只有一个平台。
(2)上传以主动推送为主,有定时性。
由于上传数据一般需要查询历史记录,所以需要把记录存放在数据库中。上传函数定时执行,当检测到某种数据已经到了发送时间时,从数据库中提取相关数据,拼接出要上传的内容。把上传内容存放到数据库中,标记未上传。
另外有一个独立线程,定时扫描数据库,找出未上传的记录。当有相关记录时,把记录标记为已上传。
7.2 内部触发调度系统
对设备的控制有可能来自内部,基于数据的变化。当数据满足一定条件时,触发若干设备产生一系列的动作。如果使用硬编码实现这一功能,则系统跟某一特定需求耦合度过高。
创建一个可配置的列表,每一项包含以下内容:
触发条件 | 触发事件 | 时延 | 优先级 |
基于设备/因子虚拟化,触发条件的写法类似:
A设备.a因子==1 && B设备.b因子>3
而触发事件的写法类似:
A设备.a因子=0
在每一个触发项里面,触发事件可以有多个。
调度系统运行时,根据优先级对触发列表进行排序,然后循环每一项,检查触发条件。如果条件满足,则把触发事件交给反控调度系统处理。
7.3 他方系统调度系统
他方系统要调取我方数据,方式有两种:
(1)我方主动定时推送
(2)他方请求,我方响应相应数据
无论是何种方式,皆可把他方系统看成平台,通过平台通讯协议(如212协议)进行交互。