Closed Lilei-Wang closed 7 years ago
能不能贴出工作流的图? 既然"一遍工作流耗时极少", 为什么是延迟6s输出?
在0.1秒间隔触发下, 1s触发10次, 那么你的输出是在第6秒之内输出10次(间隔还是0.1s, 整体delay6s) 还是每次输出间隔是6s
2.当标签被识别之后会发出响声,我从读写器发出响声开始计时 到输出信息 时间大概为6秒左右,也就是说当一个标签被识别后,6秒之后会显示在文本框上面。(间隔还是0.1s 整体delay 6s)
3.6秒并不是固定的时间 有的时候会7-8秒
可以尝试一下这个debug 功能, 点了"眼睛"后, 可有在右边的debug中看到该模块的输入输出, 从而可以看到时间的瓶颈在哪里.
请问你的RFID服务中有什么阻塞的代码吗? 比如 wille循环, 复杂的运算, IO读写等
有一个IO的读写 轮询的时候要对 RFID读写器写入一个指令 才能获得相应的数据
Muliple polling 2 这个服务就是IO的读写 我在Muliple polling 2服务的开头和结尾输出了时间戳
可以看到
time of start muliple polling 2 1478591422327 ;
Data to write: aa00220000228e;
Flunsh data 0;
Result of writing data: 7;
Result of reading data: aa02220011c23000e200937373020114128094800da0ec8e;
time of end muliple polling 2 :1478591422333
这是我日志里面打出的信息 整个服务计时也就是 6毫秒
请问 是不是因为node js的单线程问题导致了阻塞 ? 谢谢!
单线程不会导致阻塞. 而是某些代码会阻塞线程. 现在我们还是不知道这6s花在了哪里, 能否做了实验, 将间隔触发设为10s, 然后每一个服务 kernel的开始, 和sendout后, 都打出时间. (或者就是用上面的debug功能 http://01org.github.io/intel-iot-services-orchestration-layer/#getstarted/advanced/debug/1-debug)
抱歉, 之前的回复忘记写网页地址了
感谢您的建议 我在每个服务kernel的开始 和sendout 的最后都打出了时间 init由于只执行一次 所以没有打时间上去 结果如下 `muliple polling 2 kernel start:1478596423132 muliple polling 2 send out start 1478596423143 muliple polling 2 send out over:1478596423151
infor handle kernel start:1478596423651 infor handle sendout start :1478596423654 infor handle sendout over:1478596423660
hashmap kernel start :1478596424194 hashmap send out start : 1478596424197 hashmap send out over :1478596424212`
请问为什么工作流之间连接要这么长时间? (以上三个服务 我只写了kernel.js)一个服务执行完之后到下一个服务开始执行到底发生了什么??
谢谢!
不好意思, 我忘记说了 这个工作流的执行我把间隔时间设置成十秒
服务之间信息的传递和处理, 以及每个服务的触发, 都需要一定的时间. 1, 你的硬件平台是什么? 我在edison上, 4个服务的总延时大概是1s 2, 如果你测到服务之间是0.5s, 你的工作流中4个服务, 最多延迟也只有2s, 为什么会6s? 3, IoTSOL现在没有对延时有特别的优化, 如果你对服务之间的时间要求很高, 可能需要将整个工作写入一个服务中.
我在iot 的工作流里面使用了 间隔触发 来定时触发我的工作流运行,我的工作流最后输出特定的字符 但是这样就造成了 阻塞 我每隔0.1秒执行一次工作流 一遍工作流耗时极少 但是 我执行的结果会延迟大概6秒左右才会输出 我想知道是不是单线程的问题?或者说是有什么更好的解决办法?是哪里的问题