Стратегия Supervision.decider в akka 2.6.0

Приходится проходить supervision.decider но в акке 2.6.0+ Materializer нет подобных настроек.

Может ли кто-нибудь поделиться, как написать код ниже в более высокой версии:

val mat: ActorMaterializer = ActorMaterializer(Actor Materializersettings(supervision.decider))

Попробовал новый способ, не выбирая, как того требует класс стратегии String:

1.

val mat: Materializer = Matrializer(actorsystem)
mat.system.settings.supervisionstratgyclass = ???
  1. ActorAttributes(supervision.decider)

Будем признательны за любую идею, как передать стратегию наблюдения через материализатор.

Как мы передаем индивидуальную стратегию контроля в настройках? Я не использую потоки. Это будет простой стартовый вызов с материализатором.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы хотите настроить стратегию наблюдения за потоком. Вот несколько примеров того, как это сделать из официальной документации: Ошибка потока - стратегии контроля.

Как видите, в следующем примере для исполняемого графа устанавливается стратегия контроля по умолчанию.

val decider: Supervision.Decider = {
  case _: ArithmeticException => Supervision.Resume
  case _                      => Supervision.Stop
}
val source = Source(0 to 5).map(100 / _)
val runnableGraph =
  source.toMat(Sink.fold(0)(_ + _))(Keep.right)

val withCustomSupervision = runnableGraph.withAttributes(ActorAttributes.supervisionStrategy(decider))

В другом случае стратегия надзора определяется на уровне Flow.

val decider: Supervision.Decider = {
  case _: ArithmeticException => Supervision.Resume
  case _                      => Supervision.Stop
}
val flow = Flow[Int]
  .filter(100 / _ < 50)
  .map(elem => 100 / (5 - elem))
  .withAttributes(ActorAttributes.supervisionStrategy(decider))
val source = Source(0 to 5).via(flow)

Спасибо за отзыв. Я не использую никаких потоков. Это простой запуск, и вы хотите выйти из системы в качестве пользовательской стратегии принятия решений в случае исключения. Глядя на реализацию с новыми изменениями материализатора.

rimmi anand 17.04.2023 08:06

Ой, извини. Судя по тегам поста, я подумал, что вы работаете с akka-streams. В этом случае вам нужно будет использовать Behaviors.supervise(behavior).onFailure(supervisorStrategy). Этот помощник позволит вам контролировать актера (Behavior), а затем вызвать метод onFailure, чтобы решить, какую стратегию наблюдения вы хотите применить в зависимости от ваших потребностей. В официальных документах Akka — отказоустойчивость есть хорошие примеры того, как это сделать

Gastón Schabas 17.04.2023 18:03

Другие вопросы по теме