发生错误时如何重新创建Akka流源

发生错误时如何重新创建Akka流源,akka,akka-stream,Akka,Akka Stream,是否有可能创建一个可再现的阿克卡溪流源,以及如何实现这种行为?例如,我希望使用以下帮助器方法: def recreatable[T, Mat](source: => Source[T, Mat], delay: Duration)(implicit mat: ActorMaterializer): Source[T, Mat] = ... // using helper method recreatable(new MySource(...), 1 minute).map(...) 任何

是否有可能创建一个可再现的阿克卡溪流源,以及如何实现这种行为?例如,我希望使用以下帮助器方法:

def recreatable[T, Mat](source: => Source[T, Mat], delay: Duration)(implicit mat: ActorMaterializer): Source[T, Mat] = ...
// using helper method
recreatable(new MySource(...), 1 minute).map(...)

任何帮助都会得到回报。提前Thx

如果我理解正确,这将需要在物化图中动态重新附加源。这是不容易做到的,而AFAIK akka streams除了
flatMap
combinators之外,并没有提供一种明确的方法来做到这一点。非常糟糕:(我正在开发实现反应式接口的JMS连接器,因此我只想重新启动/重新创建一个发布服务器,而不是重新创建整个流。然后,可能最好将重新启动的发布服务器建模为单个源。也就是说,您需要将重新连接逻辑移动到源的物化状态,而不是使只需建立一次与总线的连接。例如,您可以使用一个参与者来完成此操作,该参与者总是试图保持连接,而当您希望整个系统出现故障时(例如,在尝试了足够多的失败尝试之后),该参与者就会失败。@Vladimir Matveev,非常感谢您的解释。我将再次尝试进行一些研究。