0

我有akka camel-ftp消费者。我想处理代码中的所有异常(例如身份验证异常,或无法读取 ftp 上的文件)。我只能在日志中看到堆栈跟踪,无法处理。也许最好使用scalaz-camel.

此外,我想知道所有文件何时被处理并且 Actor 空闲直到下一次读取 ftp 文件夹

class FtpWorkerActor() extends Consumer with ActorLogging {

  override def receive: Actor.Receive = {
    case msg: CamelMessage => /* handle files */

    case v: Any => /*never riched. but i need to understand if I have authentification issues etc*/

  }

  override def endpointUri: String = {
    val initDelay = 1000 // 1 second
    val otherOptions = s"disconnect=true&throwExceptionOnConnectFailed=true&filter=#datFileFilter&delay=$processingDelay&initialDelay=$initDelay"
    s"ftp://$username@$ftpSourcePath?username=$username&password=$pass&$otherOptions"
  }
}
4

1 回答 1

0

您应该尝试在主管中运行您的 Actor 并在那里实现错误处理。这是有关此的更多文档:http: //doc.akka.io/docs/akka/current/scala/fault-tolerance.html

在这种情况下,您的主管将能够捕获所有异常并决定如何处理FtpWorkerActor- 停止、重新启动等。

于 2016-05-23T16:06:08.377 回答