какое значение дает без перезапуска ?разве вы не должны воспользоваться стратегиями надзора и гарантировать, что в условиях временного сбоя в конечном итоге будет выполнено действие, которое вы хотите сделать?
Это фактически известный проект в распределенных системах, который часто называют Ядро ошибки .Это также один из различных шаблонов, о которых говорит Роланд Кун в своей книге Шаблоны реактивного проектирования .
Он состоит из субъекта с состоянием (инкапсулируя то, что может бытьбизнес-логика модуля в вашем приложении), которая требует некоторого побочного эффекта безотказным способом (например, запись в базу данных).Таким образом, для выполнения побочного эффекта он порождает дочернего актера, который будет выполнять действие, не блокируя родителя, и в случае неудачи он может использовать стратегию надзора для повторного запуска и повторной попытки или отказа.Мы часто моделируем этот тип поведения в наших тестах и таким образом можем убедиться, что приложение не просто взорвется, когда БД не отвечает, но и чтобы убедиться, что оно в конечном итоге может связываться с ним.
Это, в конце концов, своего рода субъективная тема, и, конечно, предыдущий пример может быть сколь угодно сложным.Но дело в том, что вы должны были выбрать Akka за его способность помогать вам создавать отказоустойчивые системы.Таким образом, тестирование того, что оно может выжить в условиях кратковременного отказа, даст вам гораздо большую ценность, чем противоположное .