taxi 3秒轮询方案 缓解长连接异常

This commit is contained in:
lianglihui
2021-07-18 12:26:51 +08:00
parent 42fe73734f
commit c7db187928
2 changed files with 26 additions and 1 deletions

View File

@@ -28,8 +28,11 @@ import com.mogo.utils.storage.SharedPrefsMgr;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
public
@@ -149,6 +152,14 @@ class MogoOCHTaxiModel {
Logger.e(TAG,"querryCarStatus:"+data.data.status);
mOCHRHCarstatus = data.data.status == 1 ? 1:0;
if (mOCHRHCarstatus == 1){
timeLoop();
}else {
if (mDisposable != null ){
mDisposable.dispose();
}
}
//更新view
OCHTaxiUiController.getInstance().onOperationChanged(mOCHRHCarstatus==1);
//刷新数据
@@ -841,4 +852,18 @@ class MogoOCHTaxiModel {
e.printStackTrace();
}
}
private static final int PERIOD = 3 * 1000;
private static final int DELAY = 100;
private Disposable mDisposable;
/**
* 定时循环任务
*/
private void timeLoop() {
mDisposable = Observable.interval(DELAY, PERIOD, TimeUnit.MILLISECONDS)
.map((aLong -> aLong + 1))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> query2RestoreOrderStatus(null));
}
}

View File

@@ -67,7 +67,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
private TextView mDistance;
private MogoPolylineOptions mogoPolylineOptions;
private int saveOrderState = -1;
private volatile int saveOrderState = -1;
@Override
public int getStationPanelViewId() {
return R.layout.module_och_taxi_panel;