ajax+paramiko执行耗时脚本问题

发布于 2021-12-04 20:25:39 字数 2158 浏览 923 评论 0

ajax post到django后台,paramiko远程执行耗时为5分钟的脚本,并取回echo值

执行结果为,一次成功,一次失败,交替进行。

前后端代码如下:

$.ajax({
              type: 'POST',
              url:  "/android/test_deploy_one/"+sub_id+"/?fresh=" + Math.random(),
              data: {csrfmiddlewaretoken:'{{csrf_token}}' },
              timeout : 600000, //超时时间:600秒
              success: function(data){
                layer.close(ii);
                if(data == "success"){
                    show_info_msg("完成");
                }else{
                    show_info_msg("失败");
                }
               subTable.ajax.reload()
              },
              error: function (XMLHttpRequest, textStatus, errorThrown) {
                  alert(XMLHttpRequest.status); //失败时为0
                  alert(XMLHttpRequest.readyState);//失败时为0
                  alert(textStatus);//失败时为 error
              }
});
    def exe_and_get_echo(self, cmd_script):
        """
        远程执行脚本,并且返回脚本的打印输出
        :return:
        """
        console = ""
        s = paramiko.SSHClient()
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        try:
            s.connect(self.ip, port=self.port, username=self.username, password=self.password, timeout=self.timeout,
                      allow_agent=False, look_for_keys=False)
            #失败时,uwsgi日志在这里卡住,前端status 为fail
            stdin, stdout, stderr = s.exec_command(cmd_script, timeout=600)
        except Exception as e:
            return console
        else:
            console = stdout.read()
        s.close()
        return console

奇怪的是即使成功,也有时报下面的错误:

Fri Jul  7 19:57:30 2017 - SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request /android/test_deploy_one/14/?fresh=0.97083899214899 (ip 172.16.169.220) !!!
Fri Jul  7 19:57:30 2017 - uwsgi_response_writev_headers_and_body_do(): Broken pipe [core/writer.c line 296] during POST /android/test_deploy_one/14/?fresh=0.97083899214899 (172.16.169.220)
OSError: write error

求大神解答。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文