我有akka camel-ftp消费者。我想处理代码中的所有异常(例如身份验证异常,或者ftp上的文件无法读取)。我只能在日志中看到堆栈跟踪,无法处理它。也许使用scalaz-camel更好。
另外,我想知道什么时候所有的文件都被处理过,直到下一次读取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"
}
}发布于 2016-05-24 00:06:08
您应该尝试在supervisor中运行Actor,并在那里实现错误处理。这里有更多关于这方面的文档:http://doc.akka.io/docs/akka/current/scala/fault-tolerance.html
在这种情况下,您的主管将能够捕获所有异常并决定如何处理FtpWorkerActor -停止、重新启动等。
https://stackoverflow.com/questions/37393634
复制相似问题