С Python Splunk SDK прекратите поднимать HTTPError (ответ) для 504 ответов - PullRequest
0 голосов
/ 10 ноября 2019

Наша среда Splunk иногда выдает 504 ошибки, когда мы запрашиваем через API, что уже давно известно. Недавно мы переместили соединитель для использования 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 циклы. Если нет, то есть ли способ извлечь статус из возникшего исключения и, по крайней мере, иметь возможность обрабатывать разные коды состояния по-разному?

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете попытаться увеличить тайм-аут для вашего http-кода вызова, который должен исправить или помочь в решении проблемы.

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

...