Skip to content

OnFailure call и onSuccess call для завершенных с ошибкой сообщений и успешно завершенных #18

Description

@PavelAgarkov

OnFailure call в envelope который можно использовать для переноса данных для обработки в любой провайдер пользователя во время окончания политики ретраев для конверта.

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

OnSuccess call в envelope который можно использовать для фиксации успешного окончания работы с конвертом пользователем.

Режимы работы :

before -> stamps (invoker) -> after -> success -> end

Позитивный сценарий. Если есть интервал то перепланирование. Если конверт одноразовый то забыть.

before -> stamps (invoker) -> [failed -> decision (interface) -> retry politic] -> end

Негативный сценарий. Только для одноразовых конвертов. Падение во время обработки сообщения. Пользователь может обработать с помощью возврата интерфейса decision, который выдает разным исходя из политики решения. Варианты Перезапустить сейчас, Перезапустить через время, принять падение.

В текущем случае назначить 1 выполнение через after time выполнение через время.

before -> stamps (invoker) -> [failed -> decision (interface) -> approval] -> end

Негативный сценарий. Ошибка обработки конверта, и пользователь согласен с негативным сценарием, помечаем конвер как обработанный. Дальше пользователь сам принимает решение как обрабатывать падение в своем коде.

[before -> stamps (invoker) -> after -> stop_worker_error] -> end

Позитивный сценарий.
Особенный случай. Мы решаем выбросить из обработки конверт. Можно вернуть определенную ошибку и снять выполнение конверта. Одноразового и временного. Снимаем задачу с обработки. Ошибку можно вернуть из before, after, invoke.

after работает только в позитивный сценариях, 1 и 4.

Metadata

Metadata

Labels

enhancementNew feature or requestfor_testcode needs a testingv1.0.0For stable release v1.0.0

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions