• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Scala TimeoutException类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Scala中java.util.concurrent.TimeoutException的典型用法代码示例。如果您正苦于以下问题:Scala TimeoutException类的具体用法?Scala TimeoutException怎么用?Scala TimeoutException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了TimeoutException类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Scala代码示例。

示例1: TestBarrierTimeoutException

//设置package包名称以及导入依赖的类
package akka.testkit

import scala.concurrent.duration.Duration
import java.util.concurrent.{ CyclicBarrier, TimeUnit, TimeoutException }
import akka.actor.ActorSystem
import scala.concurrent.duration.FiniteDuration

class TestBarrierTimeoutException(message: String) extends RuntimeException(message)


object TestBarrier {
  val DefaultTimeout = Duration(5, TimeUnit.SECONDS)

  def apply(count: Int) = new TestBarrier(count)
}

class TestBarrier(count: Int) {
  private val barrier = new CyclicBarrier(count)

  def await()(implicit system: ActorSystem): Unit = await(TestBarrier.DefaultTimeout)

  def await(timeout: FiniteDuration)(implicit system: ActorSystem) {
    try {
      barrier.await(timeout.dilated.toNanos, TimeUnit.NANOSECONDS)
    } catch {
      case e: TimeoutException ?
        throw new TestBarrierTimeoutException("Timeout of %s and time factor of %s"
          format (timeout.toString, TestKitExtension(system).TestTimeFactor))
    }
  }

  def reset(): Unit = barrier.reset()
} 
开发者ID:love1314sea,项目名称:akka-2.3.16,代码行数:34,代码来源:TestBarrier.scala


示例2: TestLatch

//设置package包名称以及导入依赖的类
package akka.testkit

import scala.concurrent.duration.Duration
import akka.actor.ActorSystem
import scala.concurrent.{ Await, CanAwait, Awaitable }
import java.util.concurrent.{ TimeoutException, CountDownLatch, TimeUnit }
import scala.concurrent.duration.FiniteDuration


object TestLatch {
  val DefaultTimeout = Duration(5, TimeUnit.SECONDS)

  def apply(count: Int = 1)(implicit system: ActorSystem) = new TestLatch(count)
}

class TestLatch(count: Int = 1)(implicit system: ActorSystem) extends Awaitable[Unit] {
  private var latch = new CountDownLatch(count)

  def countDown() = latch.countDown()
  def isOpen: Boolean = latch.getCount == 0
  def open() = while (!isOpen) countDown()
  def reset() = latch = new CountDownLatch(count)

  @throws(classOf[TimeoutException])
  def ready(atMost: Duration)(implicit permit: CanAwait) = {
    val waitTime = atMost match {
      case f: FiniteDuration ? f
      case _                 ? throw new IllegalArgumentException("TestLatch does not support waiting for " + atMost)
    }
    val opened = latch.await(waitTime.dilated.toNanos, TimeUnit.NANOSECONDS)
    if (!opened) throw new TimeoutException(
      "Timeout of %s with time factor of %s" format (atMost.toString, TestKitExtension(system).TestTimeFactor))
    this
  }
  @throws(classOf[Exception])
  def result(atMost: Duration)(implicit permit: CanAwait): Unit = {
    ready(atMost)
  }
} 
开发者ID:love1314sea,项目名称:akka-2.3.16,代码行数:40,代码来源:TestLatch.scala


示例3: delete

//设置package包名称以及导入依赖的类
package controllers

import java.util.concurrent.TimeoutException

import forms._
import models.{DAO, DAOComponent}
import play.api._
import play.api.libs.concurrent.Execution.Implicits._
import play.api.mvc._
import views._

import scala.concurrent.Future


  def delete(id: Long): Action[AnyContent] = Action.async { implicit request =>
    val futureEmpDel = dao.delete(id)
    futureEmpDel.map { result => Home.flashing("success" -> "Employee has been deleted") }.recover {
      case ex: TimeoutException =>
        Logger.error("Problem found in employee delete process")
        InternalServerError(ex.getMessage)
    }
  }

}

object Application extends Application(DAO) 
开发者ID:Harl0,项目名称:play-reactive-slick,代码行数:27,代码来源:Application.scala


示例4: EnvironmentCacheEntry

//设置package包名称以及导入依赖的类
package com.galacticfog.gestalt.lambda.impl

import java.util.concurrent.TimeoutException

import org.apache.mesos.Protos
import org.joda.time.DateTime
import scala.collection.mutable
import scala.concurrent.{Await, Future}
import scala.concurrent.duration._

case class EnvironmentCacheEntry( lambdaId : String, env : Protos.Environment, queuedTime : DateTime = DateTime.now )
class EnvironmentCache {

  val cache : mutable.Map[String, EnvironmentCacheEntry] = mutable.Map[String, EnvironmentCacheEntry]()
  val EXPIRATION_SECONDS = sys.env.getOrElse( "ENV_CACHE_EXPIRATION_SECONDS", "900" ).toInt

  def getEnvironment( lambdaId : String, env : Future[Map[String,String]] ) : Protos.Environment = {

    val cacheEntry = cache.get( lambdaId )

    if( !cacheEntry.isDefined || cacheEntry.get.queuedTime.plusSeconds( EXPIRATION_SECONDS ).isBeforeNow ) {
      //wait for the future
      try {
        val result = Await.result( env, 5 seconds )
        val builder = Protos.Environment.newBuilder
        result.foreach{ entry =>
          builder.addVariables( Protos.Environment.Variable.newBuilder
            .setName( entry._1 )
            .setValue( entry._2 )
          )
        }

        val newEnv =  builder.build
        cache( lambdaId ) = new EnvironmentCacheEntry( lambdaId, newEnv )
        newEnv
      }
      catch {
        case ex : TimeoutException => {
          println( "TIMEOUT" )
          Protos.Environment.newBuilder.build
        }
      }
    }
    else {
      cache( lambdaId ).env
    }
  }
} 
开发者ID:GalacticFog,项目名称:gestalt-lambda,代码行数:49,代码来源:EnvironmentCache.scala


示例5: MyTimeout

//设置package包名称以及导入依赖的类
package org.argus.jawa.core.util

import scala.concurrent.duration.FiniteDuration
import java.util.concurrent.TimeoutException

class MyTimeout(time: FiniteDuration) {
  private final var startTime: Long = System.currentTimeMillis()
  def refresh(): Unit = this.startTime = System.currentTimeMillis()
  def isTimeout: Boolean = {
    val currentTime = System.currentTimeMillis()
    (currentTime - startTime) >= time.toMillis
  }
  def isTimeoutThrow(): Unit = {
    if(isTimeout) throw new TimeoutException("Timeout after " + time.toMinutes + " minutes.")
  }
} 
开发者ID:arguslab,项目名称:Argus-SAF,代码行数:17,代码来源:MyTimeout.scala


示例6: Application

//设置package包名称以及导入依赖的类
package controllers

import play.api._
import play.api.mvc._

import scala.concurrent.{ Await, Future }
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global
import java.util.concurrent.TimeoutException

object Application extends Controller {

  def foodtrucks = Action {
    try {
      val fut: Future[List[Truck]] = Future { Truck.listAll() }
      val response = Await.result(fut, 2500 milliseconds).asInstanceOf[List[Truck]]
      Ok(response.mkString("\n"))
    } catch {
      case e: TimeoutException => InternalServerError("Timeout exceeded")
      case e: Exception => InternalServerError("Unknown server error occured")
    }
  }

} 
开发者ID:andy327,项目名称:slack-foodtrucks,代码行数:25,代码来源:Application.scala


示例7: RichFuture

//设置package包名称以及导入依赖的类
package swave.core.util

import java.util.concurrent.TimeoutException
import scala.concurrent.duration._
import scala.concurrent.{Await, Future, Promise}
import swave.core.StreamEnv

final class RichFuture[T](val underlying: Future[T]) extends AnyVal {

  def await(timeout: FiniteDuration = 1.second): T =
    underlying.value match {
      case Some(t)                          ? t.get
      case None if timeout == Duration.Zero ? throw new TimeoutException(s"Future was not completed")
      case _                                ? Await.result(underlying, timeout)
    }

  def delay(duration: FiniteDuration)(implicit env: StreamEnv): Future[T] = {
    import env.defaultDispatcher
    val promise = Promise[T]()
    underlying.onComplete { value ?
      env.scheduler.scheduleOnce(duration) { promise.complete(value); () }
    }
    promise.future
  }
} 
开发者ID:sirthias,项目名称:swave,代码行数:26,代码来源:RichFuture.scala


示例8: ClusterAwareNodeGuardian

//设置package包名称以及导入依赖的类
package it.agilelab.bigdata.wasp.core.cluster

import java.util.concurrent.TimeoutException
import akka.actor._
import akka.pattern.gracefulStop
import akka.util.Timeout
import scala.concurrent.duration._
import it.agilelab.bigdata.wasp.core.WaspEvent.OutputStreamInitialized
import it.agilelab.bigdata.wasp.core.WaspEvent.NodeInitialized

abstract class ClusterAwareNodeGuardian extends ClusterAware {

  import akka.actor.SupervisorStrategy._

  // customize
  override val supervisorStrategy =
    OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 1.minute) {
      case _: ActorInitializationException => Stop
      case _: IllegalArgumentException => Stop
      case _: IllegalStateException => Restart
      case _: TimeoutException => Escalate
      case _: Exception => Escalate
    }

  override def preStart(): Unit = {
    super.preStart()
    log.info("Starting at {}", cluster.selfAddress)
  }

  override def postStop(): Unit = {
    super.postStop()
    log.info("Node {} shutting down.", cluster.selfAddress)
    cluster.leave(self.path.address)
    gracefulShutdown()
  }

  override def receive: Actor.Receive = uninitialized orElse initialized orElse super.receive


  def uninitialized: Actor.Receive = {
    case OutputStreamInitialized => initialize()
  }

  def initialize(): Unit = {
    log.info(s"Node is transitioning from 'uninitialized' to 'initialized'")
    context.system.eventStream.publish(NodeInitialized)
  }

  def initialized: Actor.Receive

  def gracefulShutdown(): Unit = {
    val timeout = Timeout(5.seconds)
    context.children foreach (gracefulStop(_, timeout.duration))
    log.info(s"Graceful shutdown completed.")
  }
} 
开发者ID:agile-lab-dev,项目名称:wasp,代码行数:57,代码来源:ClusterAwareNodeGuardian.scala


示例9: TellDemoArticleParser

//设置package包名称以及导入依赖的类
package com.dbaktor.actors

import java.util.concurrent.TimeoutException

import akka.actor.Status.Failure
import akka.actor.{Actor, ActorRef, Props}
import akka.util.Timeout
import com.dbaktor.{ArticleBody, HttpResponse, ParseArticle, ParseHtmlArticle}
import com.dbaktor.messages.{GetRequest, SetRequest}

class TellDemoArticleParser(cacheActorPath: String,
                            httpClientActorPath: String,
                            acticleParserActorPath: String,
                            implicit val timeout: Timeout
                           ) extends Actor {
  val cacheActor = context.actorSelection(cacheActorPath)
  val httpClientActor = context.actorSelection(httpClientActorPath)
  val articleParserActor = context.actorSelection(acticleParserActorPath)

  implicit val ec = context.dispatcher

  
  private def buildExtraActor(senderRef: ActorRef, uri: String): ActorRef = {
    return context.actorOf(Props(new Actor{
      override def receive = {
        case "timeout" => //if we get timeout, then fail
          senderRef ! Failure(new TimeoutException("timeout!"))
          context.stop(self)

        case HttpResponse(body) => //If we get the http response first, we pass it to be parsed.
          articleParserActor ! ParseHtmlArticle(uri, body)

        case body: String => //If we get the cache response first, then we handle it and shut down.
          //The cache response will come back before the HTTP response so we never parse in this case.
          senderRef ! body
          context.stop(self)

        case ArticleBody(uri, body) => //If we get the parsed article back, then we've just parsed it
          cacheActor ! SetRequest(uri, body) //Cache it as we just parsed it
          senderRef ! body
          context.stop(self)

        case t => //We can get a cache miss
          println("ignoring msg: " + t.getClass)
      }
    }))
  }

} 
开发者ID:nokeechia,项目名称:dbaktor,代码行数:50,代码来源:TellDemoArticleParser.scala


示例10: TellDemoArticleParser

//设置package包名称以及导入依赖的类
package com.dbaktor

import java.util.concurrent.TimeoutException

import akka.actor.Status.Failure
import akka.actor.{Actor, ActorRef, Props}
import akka.util.Timeout
import com.dbaktor.messages._

class TellDemoArticleParser(cacheActorPath: String,
                            httpClientActorPath: String,
                            acticleParserActorPath: String,
                            implicit val timeout: Timeout
                           ) extends Actor {
  val cacheActor = context.actorSelection(cacheActorPath)
  val httpClientActor = context.actorSelection(httpClientActorPath)
  val articleParserActor = context.actorSelection(acticleParserActorPath)

  implicit val ec = context.dispatcher

  
  private def buildExtraActor(senderRef: ActorRef, uri: String): ActorRef = {
    return context.actorOf(Props(new Actor{
      override def receive = {
        case "timeout" => //if we get timeout, then fail
          senderRef ! Failure(new TimeoutException("timeout!"))
          context.stop(self)

        case HttpResponse(body) => //If we get the http response first, we pass it to be parsed.
          articleParserActor ! ParseHtmlArticle(uri, body)

        case body: String => //If we get the cache response first, then we handle it and shut down.
          //The cache response will come back before the HTTP response so we never parse in this case.
          senderRef ! body
          context.stop(self)

        case ArticleBody(uri, body) => //If we get the parsed article back, then we've just parsed it
          cacheActor ! SetRequest(uri, body) //Cache it as we just parsed it
          senderRef ! body
          context.stop(self)

        case t => //We can get a cache miss
          println("ignoring msg: " + t.getClass)
      }
    }))
  }

} 
开发者ID:nokeechia,项目名称:RSS-Arcticle,代码行数:49,代码来源:TellDemoArticleParser.scala


示例11: AllLocationsSuccessResponse

//设置package包名称以及导入依赖的类
package services

import java.util.concurrent.TimeoutException
import javax.inject.Inject

import config.WeatherSerivceUrls
import models.{FiveDayReportRoot, Root}
import play.api.libs.ws.WSClient

import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future


sealed trait MetOfficeResponse
case class AllLocationsSuccessResponse(locations: Root) extends MetOfficeResponse
case class FiveDayForecastSuccessResponse(report: FiveDayReportRoot) extends MetOfficeResponse
case class NotFoundResponse(code: Int) extends MetOfficeResponse
case class ExampleTimeOut(error: TimeoutException) extends MetOfficeResponse

class MetOfficeService @Inject() (http: WSClient) {

  def getLocations: Future[MetOfficeResponse] = {

//  Call 1: Making a call to ws.url so need to mock this call in testing -> Returns a WSRequest
    val r = http.url(WeatherSerivceUrls.listOfLocationsUrl)

//  Call 2: Making a call to .get -> Returns a WSResponse
    r.get map {
      response =>
        response.status match {
          case 200 => AllLocationsSuccessResponse(response.json.as[Root])
          case 404 => NotFoundResponse(response.status)
        }
    } recover {
      case t: TimeoutException => ExampleTimeOut(t)
    }
  }

  def getFiveDayForecast(id: String): Future[MetOfficeResponse] = {

    http.url(WeatherSerivceUrls.fiveDayForecast(id)).get map {
      fiveDayForecast =>
        fiveDayForecast.status match {
          case 200 => FiveDayForecastSuccessResponse(fiveDayForecast.json.as[FiveDayReportRoot])
          case 404 => NotFoundResponse(fiveDayForecast.status)
        }
    } recover {
      case t: TimeoutException => ExampleTimeOut(t)
    }
  }


} 
开发者ID:BarneyNikolich,项目名称:weather-app,代码行数:54,代码来源:HasMetOffice.scala


示例12: checks

//设置package包名称以及导入依赖的类
package com.github.cupenya.auth.service.health

import java.util.concurrent.TimeoutException

import akka.actor.ActorSystem
import akka.http.scaladsl.model.DateTime

import scala.concurrent.duration._
import scala.concurrent.{ ExecutionContext, Future }
import scala.language.postfixOps

trait HealthCheckService {
  def checks: List[HealthCheck]

  def runChecks()(implicit ec: ExecutionContext, actorSystem: ActorSystem): Future[List[HealthCheckResult]] =
    Future.sequence(checks.map(_.checkWithRecovery))

  implicit class RichHealthCheck(check: HealthCheck) {
    def checkWithRecovery()(implicit ec: ExecutionContext, actorSystem: ActorSystem): Future[HealthCheckResult] =
      check
        .runCheck()
        .timeoutAfter(5 seconds)
        .recover {
          case e => HealthCheckResult(
            name = check.name,
            status = HealthCheckStatus.Critical,
            timestamp = DateTime.now.clicks,
            message = Some(s"Error while executing health check: ${e.getMessage}")
          )
        }
  }

  implicit class FutureExtensions[T](f: Future[T]) {
    import akka.pattern._

    def timeoutAfter(d: FiniteDuration)(implicit ec: ExecutionContext, sys: ActorSystem): Future[T] = {
      val eventualTimeout = after(d, sys.scheduler)(Future.failed(new TimeoutException(s"Timed out after ${d.toMillis} ms")))
      Future firstCompletedOf (f :: eventualTimeout :: Nil)
    }

  }
} 
开发者ID:cupenya,项目名称:auth-service,代码行数:43,代码来源:HealthCheckService.scala


示例13: checks

//设置package包名称以及导入依赖的类
package com.github.cupenya.service.discovery.health

import java.util.concurrent.TimeoutException

import akka.actor.ActorSystem
import akka.http.scaladsl.model.DateTime

import scala.concurrent.{ ExecutionContext, Future }
import scala.concurrent.duration._
import scala.language.postfixOps

trait HealthCheckService {
  def checks: List[HealthCheck]

  def runChecks()(implicit ec: ExecutionContext, actorSystem: ActorSystem): Future[List[HealthCheckResult]] =
    Future.sequence(checks.map(_.checkWithRecovery))

  implicit class RichHealthCheck(check: HealthCheck) {
    def checkWithRecovery()(implicit ec: ExecutionContext, actorSystem: ActorSystem): Future[HealthCheckResult] =
      check
        .runCheck()
        .timeoutAfter(5 seconds)
        .recover {
          case e => HealthCheckResult(
            name = check.name,
            status = HealthCheckStatus.Critical,
            timestamp = DateTime.now.clicks,
            message = Some(s"Error while executing health check: ${e.getMessage}")
          )
        }
  }

  implicit class FutureExtensions[T](f: Future[T]) {
    import akka.pattern._

    def timeoutAfter(d: FiniteDuration)(implicit ec: ExecutionContext, sys: ActorSystem): Future[T] = {
      val eventualTimeout = after(d, sys.scheduler)(Future.failed(new TimeoutException(s"Timed out after ${d.toMillis} ms")))
      Future firstCompletedOf (f :: eventualTimeout :: Nil)
    }

  }
} 
开发者ID:cupenya,项目名称:k8s-svc-discovery,代码行数:43,代码来源:HealthCheckService.scala


示例14: TimeoutScheduler

//设置package包名称以及导入依赖的类
package com.bwsw.tstreamstransactionserver.netty.client


import java.util.concurrent.TimeUnit
import java.util.concurrent.TimeoutException

import com.bwsw.tstreamstransactionserver.exception.Throwable.RequestTimeoutException

import scala.concurrent.{ExecutionContext, Future => ScalaFuture, Promise => ScalaPromise}
import scala.concurrent.duration.Duration
import io.netty.util.{HashedWheelTimer, Timeout}
import org.slf4j.LoggerFactory


object TimeoutScheduler{
  private val logger = LoggerFactory.getLogger(this.getClass)
  private val timer = new HashedWheelTimer(10, TimeUnit.MILLISECONDS)
  def scheduleTimeout(promise:ScalaPromise[_], after:Duration, reqId: Long): Timeout = {
    timer.newTimeout((timeout: Timeout) => {
      val requestTimeoutException = new RequestTimeoutException(reqId, after.toMillis)
      val isExpired = promise.tryFailure(requestTimeoutException)
      if (isExpired && logger.isDebugEnabled) logger.debug(requestTimeoutException.getMessage)
    }, after.toNanos, TimeUnit.NANOSECONDS)
  }

  def withTimeout[T](fut:ScalaFuture[T])(implicit ec:ExecutionContext, after:Duration, reqId: Long): ScalaFuture[T] = {
    val prom = ScalaPromise[T]()
    val timeout = TimeoutScheduler.scheduleTimeout(prom, after, reqId)
    val combinedFut = ScalaFuture.firstCompletedOf(collection.immutable.Seq(fut, prom.future))
    fut onComplete (_ => timeout.cancel())
    combinedFut
  }
} 
开发者ID:bwsw,项目名称:tstreams-transaction-server,代码行数:34,代码来源:TimeoutScheduler.scala


示例15: analyse

//设置package包名称以及导入依赖的类
import java.nio.file.Path
import java.util.concurrent.{TimeUnit, TimeoutException}

import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
import scala.concurrent.{Await, Future}
import scala.io.Source


  def analyse(root: Path, pmdRoot: Path): Future[String] = {
    Future {
      val builder = new ProcessBuilder()
      builder.directory(root.toFile)
      // Set pmd website
      val command = Seq(pmdRoot.resolve("bin").resolve("run.sh").toString, "pmd",
        "-d", ".",
        "-language", "java",
        "-version", "1.8",
        "-f", "html",
        "-rulesets", rulesets.map(rule => s"${pmdRoot.toString}/rulesets/java/$rule.xml").mkString(","))
      builder.command(command: _*)

      val process = builder.start()
      val output = process.getInputStream
      val outputString = Future {
        val out = Source.fromInputStream(output)
          // Remove unnecessary project tmp path
          .getLines().map(line => line.replace(root.toString, ""))
          // Make one long string
          .mkString

        // Strip away surrounding <html>, <head> and <h*> tags
        val stripped = out.substring(119, out.length - 15)

        // Seriously, it's easier to parse the links than read the documentation on how to set the pmd website -_-
        pmdWebsiteRegex.replaceAllIn(stripped, pmdWebsite)
      }

      if (process.waitFor(2, TimeUnit.MINUTES)) {
        Await.result(outputString, 10 seconds)
      } else {
        process.destroyForcibly()
        throw new TimeoutException("Code analysis did not complete within 2 minutes. Exit code " + process.exitValue())
      }
    }
  }

} 
开发者ID:Jegp,项目名称:corrector,代码行数:49,代码来源:CodeAnalyser.scala


示例16: TimeoutSettings

//设置package包名称以及导入依赖的类
package org.zalando.etcdwatcher

import java.util.concurrent.TimeoutException
import javax.inject.{ Inject, Named, Singleton }

import akka.actor.{ Actor, ActorLogging, ActorRef }
import play.api.libs.concurrent.InjectedActorSupport

import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._

@Singleton
class TimeoutSettings() {
  val UnexpectedErrorRetryTimeout = 10.seconds
  val TimeoutErrorRetryTimeout = 0.seconds
}

object EtcdMainActor {
  final val name = "etcd-main"
}

class EtcdMainActor @Inject() (
    configListener: ConfigListener,
    @Named(EtcdWatcherActor.name) watcherActor: ActorRef,
    timeoutSettings: TimeoutSettings
) extends Actor with InjectedActorSupport with ActorLogging {

  override def preStart(): Unit = {
    watcherActor ! RetrieveKeys
  }

  override def receive = {
    case UpdateKeys(keys) =>
      log.debug(s"Received updated keys: $keys")
      configListener.keysUpdated(keys)
      watcherActor ! WatchKeys

    case HandleFailure(exception) =>
      val retryTimeout = exception match {
        case exc: TimeoutException =>
          log.info(s"Disconnected by timeout [${exc.getMessage}]")
          timeoutSettings.TimeoutErrorRetryTimeout
        case err =>
          log.error(err, s"Unexpected error while requesting key [${err.getMessage}]")
          timeoutSettings.UnexpectedErrorRetryTimeout
      }
      context.system.scheduler.scheduleOnce(retryTimeout, watcherActor, RetrieveKeys)

    case _ => log.warning("Unknown message received")
  }
} 
开发者ID:zalando-incubator,项目名称:play-etcd-watcher,代码行数:52,代码来源:EtcdMainActor.scala


示例17: RemoraApp

//设置package包名称以及导入依赖的类
import java.io.IOException
import java.net.ConnectException
import java.util.concurrent.TimeoutException

import akka.actor.ActorSystem
import akka.stream.{ActorMaterializer, ActorMaterializerSettings, Supervision}
import com.codahale.metrics.jvm.{ThreadStatesGaugeSet, MemoryUsageGaugeSet, GarbageCollectorMetricSet}

import scala.util.control.NonFatal

object RemoraApp extends App with nl.grons.metrics.scala.DefaultInstrumented {

  private val actorSystemName: String = "remora"
  implicit val actorSystem = ActorSystem(actorSystemName)

  metricRegistry.registerAll(new GarbageCollectorMetricSet)
  metricRegistry.registerAll(new MemoryUsageGaugeSet)
  metricRegistry.registerAll(new ThreadStatesGaugeSet)

  lazy val decider: Supervision.Decider = {
    case _: IOException | _: ConnectException | _: TimeoutException => Supervision.Restart
    case NonFatal(err: Throwable) =>
      actorSystem.log.error(err, "Unhandled Exception in Stream: {}", err.getMessage)
      Supervision.Stop
  }

  implicit val materializer = ActorMaterializer(
    ActorMaterializerSettings(actorSystem).withSupervisionStrategy(decider))(actorSystem)

  implicit val executionContext = actorSystem.dispatchers.lookup("kafka-consumer-dispatcher")
  val kafkaSettings = KafkaSettings(actorSystem.settings.config)
  val consumer = new RemoraKafkaConsumerGroupService(kafkaSettings)
  val kafkaClientActor = actorSystem.actorOf(KafkaClientActor.props(consumer), name = "kafka-client-actor")

  Api(kafkaClientActor).start()

} 
开发者ID:zalando-incubator,项目名称:remora,代码行数:38,代码来源:RemoraApp.scala


示例18: TellDemoArticleParser

//设置package包名称以及导入依赖的类
package com.akkademy

import java.util.concurrent.TimeoutException

import akka.actor.Status.Failure
import akka.actor.{Actor, ActorRef, Props}
import akka.util.Timeout

import com.akkademy.messages.{GetRequest, SetRequest}

class TellDemoArticleParser(cacheActorPath: String,
                            httpClientActorPath: String,
                            articleParserActorPath: String,
                            implicit val timeout: Timeout) extends Actor {
  val cacheActor = context.actorSelection(cacheActorPath)
  val httpClientActor = context.actorSelection(httpClientActorPath)
  val articleParserActor = context.actorSelection(articleParserActorPath)

  implicit val ec = context.dispatcher

  
  private def buildExtraActor(senderRef: ActorRef, uri: String): ActorRef = {
    context.actorOf(Props(new Actor{
      override def receive: Receive = {
        case body: String => // This executes when a cached result is found.
          senderRef ! body
          context.stop(self)
        // the articleParserActor will reply with an ArticleBody which is the parsing results.
        case HttpResponse(body) => articleParserActor ! ParseHtmlArticle(uri, body)
        case ArticleBody(uri, body) => // This executes when a raw parse of the html is done.
          cacheActor ! SetRequest(uri, body)
          senderRef ! body
          context.stop(self)
        case "timeout" =>
          senderRef ! Failure(new TimeoutException("timeout!"))
          context.stop(self)
        case t => println("ignoring msg: " + t.getClass)
      }
    }))
  }
} 
开发者ID:josiah14,项目名称:AkkademyDb,代码行数:42,代码来源:TellDemoArticleParser.scala


示例19: WSServer

//设置package包名称以及导入依赖的类
package io.plasmap.query.engine

import java.util.concurrent.TimeoutException

import _root_.io.plasmap.geo.data.OsmStorageService
import _root_.io.plasmap.geo.mappings.{IndexingService, MappingService}
import akka.NotUsed
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.HttpMethods._
import akka.http.scaladsl.model._
import akka.http.scaladsl.model.ws.{Message, UpgradeToWebSocket}
import akka.stream._
import akka.stream.scaladsl._
import com.typesafe.scalalogging.Logger
import org.slf4j.LoggerFactory

import scala.concurrent.Await
import scala.concurrent.duration._


object WSServer extends App {

  // required actorsystem and flow materializer
  implicit val system = ActorSystem("websockets")
  implicit val fm = ActorMaterializer()

  val log = Logger(LoggerFactory.getLogger(WSServer.getClass.getName))

  implicit val ec = scala.concurrent.ExecutionContext.Implicits.global

  val storage = OsmStorageService()
  val index = IndexingService()
  val mapping = MappingService()

  log.info(s"Initialised $storage, $index, $mapping")

  val binding = Http().bindAndHandleSync(requestHandler(), interface = "0.0.0.0", port = 9000)

  def requestHandler(flow : Flow[Message, Message, NotUsed] = Flows(fm,ec)): HttpRequest ? HttpResponse = {
    case req @ HttpRequest(GET, Uri.Path("/api/websocket"), _, _, _) ?
      req.header[UpgradeToWebSocket] match {
        case Some(upgrade) ? upgrade.handleMessages(flow)
        case None          ? HttpResponse(400, entity = "Not a valid websocket request!")
      }
    case _: HttpRequest ? HttpResponse(404, entity = "Unknown resource!")
  }

  // binding is a future, we assume it's ready within a second or timeout
  try {
    Await.result(binding, 1 second)
  } catch {
    case exc: TimeoutException =>
      println("Server took too long to startup, shutting down")
      system.terminate()
  }

} 
开发者ID:plasmap,项目名称:plasmap,代码行数:59,代码来源:WSServer.scala


示例20: TellDemoArticleParser

//设置package包名称以及导入依赖的类
package com.akkademy

import java.util.concurrent.TimeoutException

import akka.actor.Status.Failure
import akka.actor.{Actor, ActorRef, Props}
import akka.util.Timeout
import com.akkademy.messages.{GetRequest, SetRequest}

class TellDemoArticleParser(cacheActorPath: String,
                            httpClientActorPath: String,
                            articleParserActorPath: String,
                            implicit val timeout: Timeout
                           ) extends Actor {
  val cacheActor = context.actorSelection(cacheActorPath)
  val httpClientActor = context.actorSelection(httpClientActorPath)
  val articleParserActor = context.actorSelection(articleParserActorPath)

  implicit val ec = context.dispatcher

  override def receive: Receive = {
    case [email protected](uri) =>
      val extraActor = buildExtraActor(sender(), uri)

      cacheActor.tell(GetRequest(uri), extraActor)
      httpClientActor.tell("test", extraActor)

      context.system.scheduler.scheduleOnce(timeout.duration, extraActor, "timeout")
  }

  private def buildExtraActor(senderRef: ActorRef, uri: String): ActorRef = {
    return context.actorOf(Props(new Actor {
      override def receive = {
        case "timeout" =>
          senderRef ! Failure(new TimeoutException("timeout!"))
          context.stop(self)

        case HttpResponse(body) =>
          articleParserActor ! ParseHtmlArticle(uri, body)

        case body: String =>
          senderRef ! body
          context.stop(self)

        case ArticleBody(uri, body) =>
          cacheActor ! SetRequest(uri, body)
          senderRef ! body
          context.stop(self)

        case t =>
          println("ignoring msg: " + t.getClass)
      }
    }))
  }

} 
开发者ID:DRouh,项目名称:learningakkadb,代码行数:57,代码来源:TellDemoArticleParser.scala



注:本文中的java.util.concurrent.TimeoutException类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Scala SecureRandom类代码示例发布时间:2022-05-23
下一篇:
Scala JsError类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap