繁体   English   中英

xmlhttprequest每3分钟发送两次POST

[英]xmlhttprequest sending POST twice in 3 minutes interval

我正在从webui启动python脚本。 该脚本需要1分钟到30分钟才能运行。 XMLHTTPREQUEST等待3分钟之内的响应,如果没有响应,它将重新启动脚本。

我希望脚本仅运行一次。 你能建议吗?

我在启动脚本时使用了以下三行:

var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/run_script", true);
xhttp.send(datas);

真正的问题是脚本未发送可靠的200响应,如果脚本独立运行,可能会在开始时发生;如果POST请求需要输出,则可能在90秒后发生。 我在这里不知道具体细节,但如此长的响应时间通常表明该工作应在后台处理,并有单独的请求启动并检查它。

如果确实需要等到超时,那么防止这种低级“重试”功能的唯一可能方法就是在发生HTTP请求之前中止它:

setTimeout(() => {
  if (xhttp.status !== 200) {
    xhttp.abort(); 
    console.log('Aborted before');
  }
}, 179000); // 179 seconds, may need to adjust

请注意,这将触发错误事件, 并且可能不会停止已启动的过程,例如文件上传。 最新的AbortSignal形式的Fetch API具有类似的功能; 行为可能会有所不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM