我现在有一个后端服务,该服务会在服务器上运行一个脚本来做一些运算,运算结果保存在文件内,文件名形如 result_12345,并且通过 url/results/12345 在 web 上显示出来
这个运算可能会耗时很久,所以当运算在进行中时,我设定一个间隔让前端自动刷新
我希望,只有当运算结束时,url/results/12345 才显示数据,否则,就什么也不显示(而不是在运算进行到一半时,就显示出一部分运算结果)
我现在能想到的方案:
因为不是严肃用途,所以不需要考虑太多的边缘情况
有没有比较好的实现方法?谢谢
1
starvedcat OP 就是说,如何让服务器知道某个脚本运行结束了
上面的方法 1:“文件不存在->未结束”,“文件存在->已结束” 上面的方法 2:“文件被加锁->未结束”,“文件可访问->已结束” 上面的方法 3:“['finished'] == false -> 未结束”,“['finished'] == true -> 已结束” |
2
kslr 2018-05-26 07:20:13 +08:00 via Android 1
打开页面建立 websocket 执行完毕获得数据
你绕的的太远了 |
3
pimin 2018-05-26 07:54:34 +08:00 via iPad 1
应该说都可以达到目的,选一个方案先实现了,无需纠结。如果是我更喜欢对输出做校验,运算结果开始和结束设置 flag,读取之后第一时间判断 flag。
|
4
fuchaofather 2018-05-26 08:12:19 +08:00 via Android
@kslr 我觉得这位大佬说的不错
|
5
omph 2018-05-26 08:48:23 +08:00 1
把脚本输出重定向到后端里,运行完毕,由后端生成文件
|
6
chen1164162915 2018-05-27 02:02:46 +08:00
脚本先把文件占用了,前端请求的时候判断下占用状态
|