Обработка исключений декоратора dogpile.cache - PullRequest
0 голосов
/ 13 июня 2019

Я использую dogpile.cache в проекте Python с бэкэндом на основе pylibmc. После создания региона я использую что-то вроде:

@region.cache_on_arguments()
def run_some_query(**kwargs):
    # ... Query code ...
    return query_results

Моя проблема в том, что есть определенные исключения, которые выдвигает декоратор, которые я просто хотел бы игнорировать. Например, если memcached недоступен или если результат слишком велик.

Есть ли способ добиться этого без использования собственного декоратора? И если мне нужно создать собственный декоратор, каков хороший способ добиться этого.

1 Ответ

0 голосов
/ 13 июня 2019

Декораторы - это просто функции.Так что вам нужно будет изменить функции.В Python нет способа отключить исключение в существующих функциях.

Вы можете унаследовать класс, в котором происходит эта обработка исключений, и переопределить этот метод.

Кроме того, есть способ, но он включает трассировку,и тебе нужно быть осторожным.

...