首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏函数式编程语言及工具

    SDP(13): Scala.Future - far from completion,绝不能用来做甩手掌柜

    monix.Task是一套新出现的解决方案,借鉴了许多scalaz.Task的概念和方法同时又加入了很多优化、附加的功能,并且github更新也很近期。使用monix.Task应该是一个正确的选择。 首先我们必须解决scala.Future与monix.Task之间的转换: import monix.eval.Task import monix.execution.Scheduler.Implicits.global import monix.execution._ object MonixTask extends App { import monix.execution.Scheduler.Implicits.global } //=> Effect // task: monix.eval.Task[String] = Delay(Now(Hello!)) import monix.execution._ object MonixTask extends App { import monix.execution.Scheduler.Implicits.global

    1.2K60发布于 2018-04-04
  • 来自专栏函数式编程语言及工具

    ScalaPB(3): gRPC streaming

    grpc-netty" % grpcJavaVersion, "com.thesamet.scalapb" %% "scalapb-runtime-grpc" % scalapbVersion, "io.monix " %% "monix" % "2.3.0" ) PB.targets in Compile := Seq( scalapb.gen() -> (sourceManaged in Compile) learn.grpc.sum.one2many.server import io.grpc.stub.StreamObserver import learn.grpc.services.sum._ import monix.execution.atomic io.grpc.stub.StreamObserver import learn.grpc.services.sum._ import learn.grpc.server.gRPCServer import monix.execution.atomic io.grpc.stub.StreamObserver import learn.grpc.services.sum._ import learn.grpc.server.gRPCServer import monix.execution.atomic

    1.2K20发布于 2018-05-28
  • 来自专栏函数式编程语言及工具

    深圳scala-meetup-20180902(2)- Future vs Task and ReaderMonad依赖注入

      在对上一次3月份的scala-meetup里我曾分享了关于Future在函数组合中的问题及如何用Monix.Task来替代。具体分析可以查阅这篇博文。 meals <- cookPasta(10)(takeFood(_,_),addFood(_,_)) } yield meals import scala.util._ import monix.execution.Scheduler.Implicits.global cooker.cookPasta(10) } yield pasta import scala.concurrent.duration._ import scala.util._ import monix.execution.Scheduler.Implicits.global

    66820发布于 2018-09-28
  • 来自专栏函数式编程语言及工具

    restapi(6)- do it the functional way, 重温函数式编程

    现在我们可以用隐式转换implicit conversion方式进行代码简化重用: import monix.execution.Scheduler.Implicits.global implicit .setCommand(Replace(filter,row)) mgoUpdate[UpdateResult](ctxUpdate) } } import monix.execution.Scheduler.Implicits.global _ import org.mongodb.scala.model.Filters._ import com.datatech.sdp.mongo.engine.MGOClasses._ import monix.execution.CancelableFuture MongoClient, m: Manifest[M], mat: ActorMaterializer) extends Directives with JsonConverter { import monix.execution.Scheduler.Implicits.global

    1.1K30发布于 2019-09-29
  • 来自专栏响应式编程

    STTP的基本使用(1):Request、Response

    Monix这种backend的返回值则是 Task[Resonse[T]]。

    82930编辑于 2022-05-30
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配

    数据库操作是标准的MongoEngine方式: import monix.execution.Scheduler.Implicits.global implicit val mongoClient ch.qos.logback" % "logback-classic" % "1.2.3", "org.typelevel" %% "cats-core" % "0.9.0", "io.monix " %% "monix-execution" % "3.0.0-RC1", "io.monix" %% "monix-eval" % "3.0.0-RC1" ) } PB.targets Iterable[T]], timeOut: Duration = 1 second): Iterable[T] = { Await.result(fut, timeOut) } import monix.eval.Task import monix.execution.Scheduler.Implicits.global final class FutureToTask[A](x: => Future[A])

    1.7K20发布于 2019-01-07
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(2)- distributed pub/sub mechanism 分布式发布/订阅机制

    grpc-netty" % grpcJavaVersion, "com.thesamet.scalapb" %% "scalapb-runtime-grpc" % scalapbVersion, "io.monix " %% "monix" % "2.3.0", //for mongodb 4.0 "org.mongodb.scala" %% "mongo-scala-driver" % "2.4.0", ch.qos.logback" % "logback-classic" % "1.2.3", "org.typelevel" %% "cats-core" % "0.9.0", "io.monix " %% "monix-execution" % "3.0.0-RC1", "io.monix" %% "monix-eval" % "3.0.0-RC1" ) PB.targets in Compile import monix.execution.Scheduler.Implicits.global final class FutureToTask[A](x: => Future[A])

    1.5K40发布于 2018-12-10
  • 来自专栏函数式编程语言及工具

    restapi(3)- MongoDBEngine : MongoDB Scala编程工具库

    akka-stream-alpakka-mongodb" % "1.1.0", "ch.qos.logback" % "logback-classic" % "1.2.3", "io.monix " %% "monix" % "3.0.0-RC3", "org.typelevel" %% "cats-core" % "2.0.0-M4" ) converters/DBOResultType.scala package com.datatech.sdp.result import cats._ import cats.data.EitherT import cats.data.OptionT import monix.eval.Task Iterable[T]], timeOut: Duration = 1 second): Iterable[T] = { Await.result(fut, timeOut) } import monix.eval.Task import monix.execution.Scheduler.Implicits.global final class FutureToTask[A](x: => Future[A])

    1.6K40发布于 2019-08-06
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(3)- ClusterClient, 集群客户端

    ._ class MongoAdder extends Actor with ActorLogging { import monix.execution.Scheduler.Implicits.global " %% "monix" % "2.3.0", //for mongodb 4.0 "org.mongodb.scala" %% "mongo-scala-driver" % "2.4.0", ch.qos.logback" % "logback-classic" % "1.2.3", "org.typelevel" %% "cats-core" % "0.9.0", "io.monix " %% "monix-execution" % "3.0.0-RC1", "io.monix" %% "monix-eval" % "3.0.0-RC1" ) PB.targets in Compile import monix.execution.Scheduler.Implicits.global final class FutureToTask[A](x: => Future[A])

    2.2K20发布于 2018-12-25
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(10)- gRPC on SSL/TLS 安全连接

    % "cassandra-driver-extras" % "3.6.0", "ch.qos.logback" % "logback-classic" % "1.2.3", "io.monix " %% "monix" % "3.0.0-RC2", "org.typelevel" %% "cats-core" % "2.0.0-M1", "io.grpc" % "grpc-netty"

    1.6K40发布于 2019-06-24
  • 来自专栏函数式编程语言及工具

    深圳scala-meetup-20180902(3)- Using heterogeneous Monads in for-comprehension with Monad Transformer

    taskToDBOResult(add(b,c)) } yield d val sum: Task[Either[String,Option[Int]]] = calc.value.value import monix.execution.Scheduler.Implicits.global

    60720发布于 2018-10-11
  • 来自专栏函数式编程语言及工具

    ScalaPB(5):用akka-stream实现reactive-gRPC

    grpc-netty" % grpcJavaVersion, "com.thesamet.scalapb" %% "scalapb-runtime-grpc" % scalapbVersion, "io.monix " %% "monix" % "2.3.0", // for GRPC Akkastream "beyondthelines" %% "grpcakkastreamruntime

    1.4K30发布于 2018-05-28
  • 来自专栏函数式编程语言及工具

    restapi(4)- rest-mongo : MongoDB数据库前端的httpserver

    akka-stream-alpakka-mongodb" % "1.1.0", "ch.qos.logback" % "logback-classic" % "1.2.3", "io.monix " %% "monix" % "3.0.0-RC3", "org.typelevel" %% "cats-core" % "2.0.0-M4", "com.github.tasubo" % "jurl-tools _ import org.mongodb.scala.model.Filters._ import com.datatech.sdp.mongo.engine.MGOClasses._ import monix.execution.CancelableFuture MongoClient, m: Manifest[M], mat: ActorMaterializer) extends Directives with JsonConverter { import monix.execution.Scheduler.Implicits.global

    2.2K20发布于 2019-08-13
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(9)- gRPC,实现前端设备与平台系统的高效集成

    % "cassandra-driver-extras" % "3.6.0", "ch.qos.logback" % "logback-classic" % "1.2.3", "io.monix " %% "monix" % "3.0.0-RC2", "org.typelevel" %% "cats-core" % "2.0.0-M1", "io.grpc" % "grpc-netty"

    1.4K20发布于 2019-06-24
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(16)- gRPC用JWT进行权限管理

    % "cassandra-driver-extras" % "3.6.0", "ch.qos.logback" % "logback-classic" % "1.2.3", "io.monix " %% "monix" % "3.0.0-RC2", "org.typelevel" %% "cats-core" % "2.0.0-M1", "io.grpc" % "grpc-netty"

    1.8K30发布于 2019-07-19
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(8)- CQRS Reader Actor 应用实例

    ._ import monix.execution.Scheduler.Implicits.global import scala.util._ object CQLCreatTables extends % "cassandra-driver-extras" % "3.6.0", "ch.qos.logback" % "logback-classic" % "1.2.3", "io.monix " %% "monix" % "3.0.0-RC2", "org.typelevel" %% "cats-core" % "2.0.0-M1", "com.thesamet.scalapb" % import monix.execution.Scheduler.Implicits.global session.execute(boundStmt) Task.now import monix.execution.Scheduler.Implicits.global final class FutureToTask[A](x: => Future[A])

    1.8K60发布于 2019-06-24
  • 来自专栏函数式编程语言及工具

    restapi(5)- rest-mongo 应用实例:分布式图片管理系统之一,rest 服务

    ._ import monix.execution.CancelableFuture import akka.util._ import akka.http.scaladsl.model._ import MongoClient, m: Manifest[M], mat: ActorMaterializer) extends Directives with JsonConverter { import monix.execution.Scheduler.Implicits.global

    1.1K30发布于 2019-09-29
  • 来自专栏函数式编程语言及工具

    PICE(1):Programming In Clustered Environment - 集群环境内编程模式

    grpc-netty" % grpcJavaVersion, "com.thesamet.scalapb" %% "scalapb-runtime-grpc" % scalapbVersion, "io.monix " %% "monix" % "2.3.0", // for GRPC Akkastream "beyondthelines" %% "grpcakkastreamruntime

    1.6K30发布于 2018-08-01
  • 来自专栏函数式编程语言及工具

    restapi(8)- restapi-sql:用户自主的服务

    parameters = getSeqParams(jsonParams,sqlText) ) jdbcBatchUpdate[Seq](ctx) } } import monix.execution.Scheduler.Implicits.global

    1.7K10发布于 2019-10-30
  • 来自专栏函数式编程语言及工具

    PICE(4):MongoDBStreaming - gRPC Protobuf conversion

    Iterable[T]], timeOut: Duration = 1 second): Iterable[T] = { Await.result(fut, timeOut) } import monix.eval.Task import monix.execution.Scheduler.Implicits.global final class FutureToTask[A](x: => Future[A])

    1.1K00发布于 2018-07-31
领券