gatewayworker中需要定时给设备发送modbus命令读取数据,一个柜子下理论最多有255个探头,我现在的思路是把所有探头根据参数生成命令存放在session中,每个柜子一个定时器定时遍历发送命令因为modbus下存在一种寄变模式,根据返回的值无法确定这包数据是属于哪个探头的,所以需要延时等待结果,完成一个过一个,但框架不能用sleep
我现在有三个解决思路:
1,用globaldata组件共享数据,专门写一个worker来处理定时发送命令,里面使用sleep[有个疑问?这里使用sleep只是对应的这个worker进程不能处理其他请求,还是整个框架都进入睡眠停止工作,比如负责连接设备的gateway进程会不会受影响];
2,用http把参数传出去用网页那边发送命令;
3,遍历生成定时器,每个定时器执行时间岔开固定时间,也可以实现延时发送效果;
因为以上三个思路存在额外开销或者需要生成最大大于原思路200倍以上的定时器数量,比较担心性能和稳定性,如果抛开以上三个思路,