RxJS 和主/工作线程工作流
RxJS and Master/Worker workflow
现在我的程序使用集群库看起来像这样:
if(cluster.isMaster) {
// here goes Rx subscriptions and workflows for the Master
} else if (cluster.isWorker){
// here goes Rx subscriptions and workflows for a Worker
}
它看起来有点丑,我需要复制一些对主节点和 worker 都很常见的代码。有没有办法以更"反应式"的风格重写它?
将
逻辑分解为"任务"或可重用的转换是一种很好的做法。然后,您可以将它们组合在一起,以创建更复杂的数据转换管道,针对不同情况进行自定义。
function masterTransform( data$ ){
return data$.map( extractData )
.map( doSomething("master"))
.map( anotherThing )
.distinctUntilChanged()
.scan( (a,b) => a + b, 0 );
}
function slaveTransform( data$ ){
return data$.map( extractData )
.map( doSomething("slave"))
.flatMapLatest( combineOtherSource )
.scan( (a,b) => Math.max(a,b), 0 );
}
let stream$ = cluster.isMaster
? service.getMasterData().let( masterTransform )
: service.getSlaveData().let( slaveTransform );
stream$.subscribe( data => console.log( data ));
相关文章:
- Doppio:多线程是如何工作的,有什么限制吗
- Web 工作线程中的同步 XHR 请求是否仍会锁定浏览器
- 在工作线程中使用 setTimeOut
- 页面工作线程 - destroy() 似乎没有删除窗口对象
- 如何在工作线程中调用 window.external.notify
- 服务工作线程是否可以响应同步 XHR 请求
- 增加服务工作线程的生命周期
- Android Web Console: UncaughtReferenceError: 未定义工作线程
- 节点群集未将任务分派给另一个可用的工作线程
- Web 工作线程/画布的内存泄漏
- 如何通过 webhook 将 json 格式的字符串作为有效负载传递给 iron.io 工作线程
- jQuery Mobile App 的后台工作线程
- 服务工作线程是否可以缓存 POST 请求
- RxJS 和主/工作线程工作流
- 关于 Web 工作线程并行性
- 如何从字符串创建 Web 工作线程
- 对单个 PHP 脚本的多个 AJAX 调用划分工作负载 = 服务器端多线程
- 如果工作线程发布消息时主线程繁忙,会发生什么情况
- 如何删除有缺陷的服务工作线程,或实现“终止开关”
- 我可以在浏览器ui线程和web工作线程中安全地使用html5中的哪些本地存储