Комментарии 2
По Вашим требованиям (прерывать ход процесса, сохранять состояния, логика в обычном коде, передача состояний) отлично подходят корутины (которые давно есть в boost). Рассматривался ли такой вариант? Почему не подошёл?
0
Спасибо за интерес,
Корутины сохраняют состояние в процессе выполнения, но как сохранить фрейм корутины в БД я не придумал. И так же, как восстановить состояние в случае падения приложения или сбоя машины? Если все операции идемпотентны, то можно просто перезапустить корутину, но в нашем случае это было не вполне так. Поэтому, на мой взгляд, они не подходили.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Стремление к простоте: о санкциях, транзакциях и одном рефакторинге