云平台技术要点

1.目的

使用网页进行数据分析,降低分析所需的技术门槛。

2.其中关键技术包括:

  1. 网页运行命令: 设置和上传文件,点击开始运行
  2. 网页运行耗时命令:怎么获取每个任务的状态和输出?
    • 前台拼接命令,传到后台
    • 后台生成凭据(用户名+时间戳)
    • 把凭据记录到history文本文件,
    • 在命令前添加echo 状态码>凭据.status.txt,命令后添加 echo $? >凭据.status.txt文件
    • 命令本身修改为 cmd | tee -a 凭据.log.txt
    • 开启多线程,执行命令: echo -1> status && cmd | tee -a log && echo $? > stats
    • 前台使用ajax监控 status文件,在非负之前一直开启长轮询。-1表示运行中,0表示运行成功,其他表示运行失败。
    • 后台返回log.txt文件,并记录到网页端。
  3. 怎么停止任务?由于命令中有 用户名+时间戳 凭据,后台使用 ps -aux | grep 凭据 能找到具体任务的pid,反映给前台显示出来。前台可以点击关闭,后台kill该任务。
    • 问题:常规执行 echo 7788 && cmd && echo $? 不行,因为每个语句分别执行,grep 7788啥都没有,因为echo已经瞬间执行完毕。想使用 7788 就需要把整个语句当作一个命令来执行。可行的方法是放到 bash -c "echo 7788 && sleep 50 && echo $?",因为bash -c 把其后的字符串当作一个命令,这时使用 ps -aux | grep 7788 是可以匹配到该命令的,进而拿到其pid。
    • grep 不能匹配到的方案:云平台技术要点_第1张图片
    • grep 能匹配到的方案:
      在这里插入图片描述

你可能感兴趣的:(Python3,linux,可视化,linux,服务器)