问题标签 [monix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 带有 Http 请求的断路器 monix
我正在努力使 Monix 的断路器与我在服务中收到的一些请求异步工作,并且失败了,因此它应该激活断路器,即使打开它也必须呈现请求。
这是我的代码
似乎什么时候异步在AsyncResponse
断路器回调中使用时打开,被下一个到达的请求覆盖,然后我的服务卡住并且没有更多的请求可以到达。
到目前为止,唯一的解决方案是运行它同步,但这不是一个选项,因为它必须是 NIO
scala - 如何使用自定义weither函数缓冲发射
我需要像monix.Observable.bufferTimedAndCounted
自定义“weither”这样的功能。我找到bufferTimedWithPressure
了允许使用项目重量的操作员:
但是发射会在每个指定的持续时间内发生。我需要像这样的行为bufferTimedAndCounted
,所以当缓冲区满时会发生发射。如何做到这一点?
scala - 从 monix Scheduler 上执行的所有任务中收集数据
我正在使用 Monix Scheduler 定期执行一些任务。但我不知道如何不仅执行它们,还从它们收集结果到某个集合......假设我有一个计划任务,每次都返回一个随机数:
从理论上讲,我可以在任务执行之前创建可变和并发task.map
列表,并且可以将结果放入该列表中……但我听说使用可变的、线程之间共享的集合根本不是最佳实践。 .. 有什么好方法可以收集所有预定的任务结果吗?我应该使用什么工具以适当的 scala 惯用方式实现这一目标,避免可变集合?
scala - Monix Task.sleep 和单线程执行
我正在尝试理解 Monix 中的任务调度原则。以下代码(来源:https ://slides.com/avasil/fp-concurrency-scalamatsuri2019#/4/3 )只产生'1',正如预期的那样。
当我们添加Task.sleep
到repeat
方法中
输出变为
这两个任务现在在一个线程上同时执行!很好:) 一些合作让步已经开始了。到底发生了什么?谢谢 :)
编辑:同样的情况发生在Task.shift
而不是Task.sleep
.
scala - 拆分 Monix Observable
我想为monix.reactive.Observable
. 它应该根据谓词的值将源Observable[A]
拆分为新的 pair ,并针对源中的每个元素进行评估。(Observable[A], Observable[A])
我希望拆分独立于源 Observable 是热的还是冷的。在源很冷的情况下,新的一对 Observable 也应该是冷的,而在源很热的情况下,新的一对 Observable 将是热的。我想知道这样的实现是否可行,如果可以,如何实现(我在下面粘贴了一个失败的测试用例)。
签名,作为隐式类的方法,看起来像或类似于
目前,我有一个简单的实现,它使用源元素并将它们推送到PublishSubject
. 因此,这对新的 Observables 很热门。我对冷 Observable 的测试失败了。
我希望上面的两个测试用例都能通过,但"Observable Ops" should "split a cold observable"
都失败了。
编辑:工作代码
通过两个测试用例的实现如下:
scala - 期货列表的 Monix 任务处理失败
如何处理异步执行任务期间的失败?即至少打印堆栈跟踪并关闭。下面的代码似乎永远等待输入> 5
编辑
试:
不会停止计算。如何记录堆栈跟踪并取消正在进行的计算并停止?
scala - 监控 Monix 应用程序内部动态的最佳实践
我正在开发基于 monix 的应用程序。计算管道变得相当复杂。我想知道了解运行时发生的情况的最佳方法是什么?理想情况下,可视化带有通过事件的速率和延迟注释的可观察对象树。但即使是基本的指导/示例也会有所帮助。
java - Scala 任务返回映射
我有一个方法 readHeader ,它接受一个参数并返回Task[List[Header]],另一种方法调用多个 id 并返回List[Task[List[EquipmentHeader]]]。如何使Task[List[List[Header]]]的返回兼容多个 id 读取功能。
scala - 将 List[Task[List[A]]] 转换为 Task[List[A]]
如何在 scala 中将List[Task[List[Header]]]类型转换为 Task[List[Header]] 。
我有一个方法返回 Task[List[Header]] 并多次调用 dor 它变成 List[Task[List[Header]]]
scala - Task[List[List[A]]] 到 Task[A] 如果列表有元素
我有一个返回 Task[List[List[A]]] 的方法,如果列表大于 0,我需要转换为 Task[A]
如果内部方法有多个元素,如何获取 Task[A] 是 A 的列表
如上所示,我可以转换为 Task[List[A]]