From 59c346536efb660bfaa8952586932ca54e1aaa30 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 4 Jul 2023 18:30:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AE=E8=AE=AD=E6=B7=BB=E5=8A=A0=20?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E7=BA=BF=E7=A8=8B=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/CharterPassengerModel.kt | 22 +++++++++---------- .../BusPassengerFunctionOrderPresenter.kt | 10 ++++----- .../TrajectoryAndDistanceManager.kt | 9 +++++--- ...rModelLoopManager.kt => BizLoopManager.kt} | 20 ++++++++++++++--- .../module/manager/loopmanager/LoopInfo.kt | 4 +++- 5 files changed, 42 insertions(+), 23 deletions(-) rename OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/{BusPassengerModelLoopManager.kt => BizLoopManager.kt} (70%) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index dd5ffce344..91c1194884 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -30,7 +30,7 @@ import com.mogo.och.common.module.manager.loopmanager.LoopInfo import com.mogo.och.bus.passenger.bean.response.* import com.mogo.och.bus.passenger.callback.* import com.mogo.och.bus.passenger.constant.CharterPassengerConst -import com.mogo.och.common.module.manager.loopmanager.BusPassengerModelLoopManager +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager import com.mogo.och.bus.passenger.utils.ToastCharterUtils import com.mogo.och.bus.passenger.utils.VoiceFocusManager @@ -186,12 +186,12 @@ object CharterPassengerModel { // 2 、打开空调暖风机灯设置页面 // 3、车控页面、 // 4、打开选择线路页面 - BusPassengerModelLoopManager.removeLoopFunction(TAGLOGIN) + BizLoopManager.removeLoopFunction(TAGLOGIN) CallerLogger.d(M_BUS_P + TAG, "结束登录状态轮询") // 启动订单轮 startOrderLoop() } else { - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGLOGIN, LoopInfo(3, ::queryLoginStatus) ) @@ -337,7 +337,7 @@ object CharterPassengerModel { * 启动订单轮训 */ private fun startOrderLoop() { - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGORDER, LoopInfo(3, ::queryOrder) ) @@ -348,7 +348,7 @@ object CharterPassengerModel { * 启动订单轮训 */ private fun endOrderLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGORDER) + BizLoopManager.removeLoopFunction(TAGORDER) CallerLogger.d(M_BUS_P + TAG, "结束订单轮询") } @@ -489,7 +489,7 @@ object CharterPassengerModel { * 启动订单轮训 */ private fun startCarStatusLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGCARSTATUS, LoopInfo(3, ::queryCarStatus)) + BizLoopManager.setLoopFunction(TAGCARSTATUS, LoopInfo(3, ::queryCarStatus)) CallerLogger.d(M_BUS_P + TAG, "启动车态轮询") } @@ -497,7 +497,7 @@ object CharterPassengerModel { * 启动订单轮训 */ private fun endCarStatusLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGCARSTATUS) + BizLoopManager.removeLoopFunction(TAGCARSTATUS) CallerLogger.d(M_BUS_P + TAG, "结束车态轮询") } @@ -548,7 +548,7 @@ object CharterPassengerModel { * 启动时间校准轮训 */ private fun startCalibrationLoop() { - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGCALIBRATION, LoopInfo(120, ::queryBusinessTime, immediately = true) ) @@ -559,7 +559,7 @@ object CharterPassengerModel { * 停止时间校准轮训 */ private fun endCalibrationLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGCALIBRATION) + BizLoopManager.removeLoopFunction(TAGCALIBRATION) CallerLogger.d(M_BUS_P + TAG, "结束时间校准轮询") } @@ -656,7 +656,7 @@ object CharterPassengerModel { * 启动路距计算 */ private fun startCalculateDistanceLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance)) + BizLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance)) CallerLogger.d(M_BUS_P + TAG, "开始路距计算") } @@ -667,7 +667,7 @@ object CharterPassengerModel { * ③ 到站成功后 */ private fun endCalculateDistanceLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGDISTANCE) + BizLoopManager.removeLoopFunction(TAGDISTANCE) CallerLogger.d(M_BUS_P + TAG, "结束路距计算") } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt index d7bd2cb1ac..633384e64c 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt @@ -20,7 +20,7 @@ import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener import com.mogo.och.bus.passenger.model.OrderStatusEnum -import com.mogo.och.common.module.manager.loopmanager.BusPassengerModelLoopManager +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1OrderLineFragment import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg @@ -187,7 +187,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : CallerLogger.d(M_BUS_P + TAG, "onDestroy") RxUtils.disposeSubscribe(subscribeSelectLine) RxUtils.disposeSubscribe(subscribeSelectSite) - BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP) + BizLoopManager.removeLoopFunction(TAGLINELOOP) CharterPassengerModel.setStatusChangeListener(TAG,null) CallerTelematicListenerManager.removeListener(TAG) } @@ -230,7 +230,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : mView?.hideDataDriverRefuse() } RxUtils.disposeSubscribe(subscribeSelectSite) - BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP) + BizLoopManager.removeLoopFunction(TAGLINELOOP) } } } @@ -270,7 +270,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : } mView?.hideDataWaitDriverMsg() // 启动查看和司机端链接 - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGLINELOOP, LoopInfo(3, ::checkServerStatus) ) @@ -284,7 +284,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : private fun checkServerStatus() { if (!CallerTelematicManager.getClientConnStatus()) { ToastCharterUtils.showShort("断开和司机端连接、请联系安全员") - BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP) + BizLoopManager.removeLoopFunction(TAGLINELOOP) mView?.hideDataDriverRefuse() CallerLogger.d(M_BUS_P + TAG, "endAni666") } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt index fffccac800..3f7a678324 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt @@ -12,10 +12,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.eagle.core.utilcode.util.CoordinateUtils -import com.mogo.och.common.module.manager.loopmanager.BusPassengerModelLoopManager +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.common.module.manager.loopmanager.LoopInfo import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.zhjt.service.chain.ChainLog +import io.reactivex.schedulers.Schedulers import mogo.telematics.pad.MessagePad import java.util.concurrent.ConcurrentHashMap @@ -190,7 +191,9 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ * 启动路距计算 */ private fun startCalculateDistanceLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance)) + BizLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance, + scheduler = Schedulers.computation() + )) d(SceneConstant.M_BUS_P + TAG, "开始路距计算") } @@ -198,7 +201,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ * 结束启动路距计算 */ private fun endCalculateDistanceLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGDISTANCE) + BizLoopManager.removeLoopFunction(TAGDISTANCE) d(SceneConstant.M_BUS_P + TAG, "结束路距计算") } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BusPassengerModelLoopManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt similarity index 70% rename from OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BusPassengerModelLoopManager.kt rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt index aaacdf7319..ff512902fa 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BusPassengerModelLoopManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt @@ -4,6 +4,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.och.common.module.utils.RxUtils import io.reactivex.Observable +import io.reactivex.Observer import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import java.util.concurrent.ConcurrentHashMap @@ -14,7 +15,7 @@ import java.util.concurrent.TimeUnit * * 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等) */ -object BusPassengerModelLoopManager { +object BizLoopManager { private val TAG = "BusPassengerModelLoopManager" @@ -66,8 +67,21 @@ object BusPassengerModelLoopManager { aLong?.let { if (it % loopInfo.interval == 0L) { try { - loopInfo.function.invoke() - CallerLogger.d(TAG, "${aLong}对象${loopInfo}正在执行方法${tag}") + if(loopInfo.scheduler!=null) { + Observable.just(tag).observeOn(loopInfo.scheduler) + .subscribe(object :Observer{ + override fun onSubscribe(d: Disposable) {} + override fun onError(e: Throwable) {} + override fun onComplete() { + loopInfo.function.invoke() + CallerLogger.d(TAG, "${aLong}正在执行方法${tag}_${Thread.currentThread().name}") + } + override fun onNext(t: String) {} + }) + }else{ + loopInfo.function.invoke() + CallerLogger.d(TAG, "${aLong}正在执行方法${tag}_${Thread.currentThread().name}") + } }catch (e:Throwable){ e.printStackTrace() CallerLogger.e(TAG,"$tag:--$e") diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt index 88aba91287..a6c0cccf5b 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt @@ -1,3 +1,5 @@ package com.mogo.och.common.module.manager.loopmanager -data class LoopInfo(val interval:Long,val function: () -> Unit,val immediately:Boolean=false) \ No newline at end of file +import io.reactivex.Scheduler + +data class LoopInfo(val interval:Long,val function: () -> Unit,val immediately:Boolean=false,var scheduler: Scheduler? = null) \ No newline at end of file