这个简化的案例是我的问题发生在...
object Main extends IOApp{
def run(args:Seq[String]): IO[ExitCode]={
Task{...}
.to[IO]
.as(ExitCode.Success)
}
}
另一种选择是,但这听起来与的做法Await.result(task)
不太一致。IOApp
我知道的
根据这篇很棒的帖子Monix vs Cats Effect
我发现两者之间的区别Task
IO
是:
Task
API比丰富IO
Task
在线程调度公平方面更智能、更自动化Task
获得更多可取消选项- 和更多 ...
问题和我的看法
我转换Monix
Task
成后失去了什么Casts
IO
?
它似乎工作正常,Task.gather
并且timeout
- 所有那些特定于任务的东西。
那么我在转换中失去了什么?
如果否,则没有理由创建多个数据类型。
因此,考虑到差异是否意味着我在与交谈后失去了调度公平性?Task
IO
好吧,我应该自己验证它,但我不知道如何测试它的公平性。