【发布时间】:2020-03-06 03:52:30
【问题描述】:
当我们通过 API 进行查询时,我们的 Splunk 环境有时会引发 504 错误,这是一段时间以来的已知问题。我们最近将一个连接器转移到使用 Python sdk 而不是我们拥有的 hacky 脚本。在我们基于 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