Самый простой способ сделать это - передать не целое число, а итерируемый объект, который выдает нужные значения. Например:
@retry(retry=retry_if_exception_type(CustomError), stop=stop_after_attempt(2))
def my_function(my_iter):
my_param = next(my_iter)
result = do_some_business_logic(my_param)
if not result:
if my_param == 1:
raise CustomError()
else:
raise ValueError()
my_function(iter([1, 2]))
Это похоже на проблему XY ; вероятно, есть лучший способ использовать Tenacity, чтобы делать то, что вы хотите. Возможно, вам следует опубликовать более общий вопрос о повторной попытке.
Можно добавить файл сервлета-api.jar в свойства проекта. От иерархии проекта щелкают правой кнопкой по названию проекта-> свойства-> путь сборки Java-> вкладка Libraries. Оттуда, добавьте сервлет-api.jar как внешний файл банки.
некоторые вещь проверить:
Вы создавали свой проект как "Динамический веб-проект" (через Новый-> Проект...-> сеть-> Динамический веб-проект)?
у Вас должно быть веб-приложение каталог Librairies, который делает содержит:
Вы выбирали сервер в "Окне-> Предпочтения...-> Сервер-> Установленное Время выполнения"?
У Вас есть TOMCAT_HOME в Prefereces-> Java-> Путь Сборки-> переменная Пути к классу, обращающаяся к корневому каталогу Вашей установки кота? Попытайтесь добавить его к своему пути к классу проекта.
Eclipse не использует переменную окружения ПУТИ К КЛАССУ или любого другого (кроме, возможно, чтобы найти, что VM работает). Выполнение так делало бы сложным, если не невозможным, чисто предназначаться для другого VMs и серверов от той же машины и установки. Список используемых банок только основан на Пути сборки Java проекта.
Для обычного проекта Java можно сделать:
Для более сложных проектов я предложил бы Maven+m2eclipse.
Сначала добавьте Tomcat Server, перейдя в New -> Server -> Server. Затем щелкните свой проект правой кнопкой мыши, выберите «Путь сборки» -> «Настроить путь сборки». Щелкните Добавить библиотеку -> Среда выполнения сервера и выберите добавленный сервер Tomcat.