Я пытаюсь использовать декоратор повтора. Он работает хорошо, но при достижении максимального количества повторных попыток возникает исключение. Как мне избежать этого исключения, чтобы успешно выйти из этой ситуации, или как вернуть значение, когда это произойдет?
import random
from retrying import retry
@retry( wait_fixed = 500, stop_max_delay = 2000 )
def _do_something_unreliable():
actual = random.randint(0, 10)
expected = 11
print actual
print expected
print '=' *30
if actual != expected: # retry does not succeed
raise IOError( "Broken" )
_do_something_unreliable()
Результат:
3
11
==============================
7
11
==============================
2
11
==============================
5
11
==============================
Traceback (most recent call last):
File "/home/itaybz/Documents/newKlara/infra/__stam.py", line 15, in
_do_something_unreliable()
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 49, in wrapped_f
return Retrying(*dargs, **dkw).call(f, *args, **kw)
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 212, in call
raise attempt.get()
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 247, in get
six.reraise(self.value[0], self.value[1], self.value[2])
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 200, in call
attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
File "/home/itaybz/Documents/newKlara/infra/__stam.py", line 13, in _do_something_unreliable
raise IOError( "Broken" )
IOError: Broken
6
11
==============================
Process finished with exit code 1
Повторить декоратор на Python ⇐ Python
Программы на Python
1774538575
Anonymous
Я пытаюсь использовать декоратор повтора. Он работает хорошо, но при достижении максимального количества повторных попыток возникает исключение. Как мне избежать этого исключения, чтобы успешно выйти из этой ситуации, или как вернуть значение, когда это произойдет?
import random
from retrying import retry
@retry( wait_fixed = 500, stop_max_delay = 2000 )
def _do_something_unreliable():
actual = random.randint(0, 10)
expected = 11
print actual
print expected
print '=' *30
if actual != expected: # retry does not succeed
raise IOError( "Broken" )
_do_something_unreliable()
Результат:
3
11
==============================
7
11
==============================
2
11
==============================
5
11
==============================
Traceback (most recent call last):
File "/home/itaybz/Documents/newKlara/infra/__stam.py", line 15, in
_do_something_unreliable()
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 49, in wrapped_f
return Retrying(*dargs, **dkw).call(f, *args, **kw)
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 212, in call
raise attempt.get()
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 247, in get
six.reraise(self.value[0], self.value[1], self.value[2])
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py", line 200, in call
attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
File "/home/itaybz/Documents/newKlara/infra/__stam.py", line 13, in _do_something_unreliable
raise IOError( "Broken" )
IOError: Broken
6
11
==============================
Process finished with exit code 1
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия