Итак, у меня есть обратный вызов цепь, что-то вроде этого:Python Twisted - Возвращение к цепи обратного вызова после errback
deferred = create_deferred()
deferred.addCallback(cb1)
deferred.addCallback(cb2)
deferred.addCallback(cb3)
deferred.addCallback(cb4)
deferred.addErrback(start)
deferred.addErrback(eb1)
deferred.addBoth(end)
входов запуска в начале() - который также является Errback. В начале создается отложенная. Он имеет 4 этапа обработки, от cb1 до cb4. Если все будет хорошо, вход должен пройти через 4 этапа обработки и, наконец, в конце() - из addBoth.
Если что-то пошло не так (в cb1 или cb2 и т. Д.), Они должны пойти в start(), где вход будет «повторно принят» несколько раз. Если повторений больше нет или если что-то не так происходит в start(), оно должно перейти в eb1, а не в конец().
Моя проблема в том, что даже если есть повторы для определенного ввода, он по-прежнему идет на eb1, а не в конец.
Как я могу сделать мой отложенный возврат к цепочке обратного вызова, если он встречает ошибку?
Теперь, если, например, у меня есть ошибка в CB2, отсроченные идет к С, но даже если она до сих пор попытки, он все еще идет в ЕВ1. Как я могу это исправить?
Спасибо!
Это звучит как интересная проблема, но http://sscce.org было бы очень полезно, чтобы действительно понять специфику вашей проблемы, чтобы гарантировать, что предлагаемое решение будет работать. – Glyph