YvesCheung / RxSchedulerSuppress

RxSchedulerSuppress 是用于抑制 RxJava 在同一个线程池内重复调度的工具
Apache License 2.0
36 stars 4 forks source link

有针对RxJava1.x的实现吗? #1

Open jinshiyi11 opened 3 years ago

jinshiyi11 commented 3 years ago

我看有RxJava2.x和RxJava3.x的分支,但是没有RxJava1.x的,是因为RxJava1.x没有相关的hook接口吗?

YvesCheung commented 3 years ago

应该也是有的,只是因为懒,觉得用1.x的不多

YvesCheung commented 3 years ago

有没有兴趣PR一个

jinshiyi11 commented 3 years ago

有没有兴趣PR一个

原本打算基于RxJava1.x实现一个,但是我们这边有些场景需要分析调用链,比如subscribeOn(Schedulers.io).observeOn(AndroidSchedulers.mainThread).map.subscribeOn(Schedulers.io).observeOn(AndroidSchedulers.mainThread)这种场景, 我实现了另外一种方案,通过rx.plugins.RxJavaObservableExecutionHook#onSubscribeStarthook RxJava的subscribe调用,然后通过反射分析出调用链,再根据调用链分析是否存在多余线程调度。相对于在运行时减少线程调度,改为在开发调试阶段发现问题并报告问题,目前还在观察效果

YvesCheung commented 3 years ago

开发期间发现问题也可以。但长时间要团队所有开发者都有这个意识不容易