使用Python Splunk SDK停止针对504个响应引发HTTPError(response)

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

当我们通过API查询时,我们的Splunk环境有时会抛出504错误,这已经有一段时间了。我们最近将连接器移到了我们拥有的hacky脚本上,以使用Python sdk。在基于API的API中,我们能够捕获504个随机弹出的错误,然后循环播放并在发生错误时重试。使用Python SDK,我能找到的最好的方法是:

flag = True
while flag:
    try:
        job = self.service.jobs.(create|results|any jobs./job. call)(query, **kwargs_normalsearch)
        flag = False
    except binding.HTTPError:
        print('Splunk 504 Error')
    pass
pass

但是这有很多问题,尤其是如果弹出除504以外的任何其他错误实际上表示一个真正的问题,我将陷入无休止的循环。作业/作业对象是否有参数或某些参数可以忽略特定的HTTP错误?我真的很想在True循环时停止将这些调用愚蠢地包装起来。如果没有,那么是否可以从引发的异常中提取状态,并且至少能够以不同的方式处理不同的状态代码?

python python-2.7 python-requests splunk http-error
1个回答
0
投票

您可以尝试增加HTTP调用代码的超时,这应该可以解决或帮助解决此问题。

https://www.lifewire.com/504-gateway-timeout-error-explained-2622941

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