从python“ operation_timeout”中的松弛斜杠命令增加超时时间

问题描述 投票:0回答:1

我在python脚本下运行,该脚本最终运行shell脚本,该脚本为我提供了k8s命名空间中正在运行的版本的列表。得到结果,但需要时间> 3sec。因此,这会导致“ operation_timeout”松弛。我是python的新手,提供了有关延迟的各种文档,但由于这些文档非常复杂,所以没有帮助。

from subprocess import Popen, PIPE
from subprocess import check_output
from flask import Flask

def get_shell_script_output_using_communicate():
    session = subprocess.Popen(['./version.sh'], stdout=PIPE, stderr=PIPE)
    stdout, stderr = session.communicate()
    if stderr:
        raise Exception("Error "+str(stderr))
    return stdout.decode('utf-8')

def get_shell_script_output_using_check_output():
    stdout = check_output(['./version.sh']).decode('utf-8')
    return stdout

app = Flask(__name__)

@app.route('/test',methods=['POST'])
def home():
    return '`Version List` ```'+get_shell_script_output_using_check_output()+'```'

app.run(host='0.0.0.0', port=5002, debug=True)

即使命令花费了10秒以上的时间,也有办法获得响应吗?谢谢!

python shell kubernetes slack slack-api
1个回答
-1
投票

您可以为subprocess — Subprocess management完善文档,并检查要导入的功能。

Popen没有任何Popen选项。

但是timeout确实有它

check_output()args*stdin = Nonestderr = Noneshell = Falsecwd = Noneencoding = Noneerrors = None,_ universal_newlines = None _,timeout = Nonetext = None]]

并且可以通过以下方式使用:

check_output()

这在Python 3.3+和2中也得到了解释subprocess.check_output

© www.soinside.com 2019 - 2024. All rights reserved.