Проблемы с обратным давлением. Использование темы публикации для получения события датчика при отправке, и необходимость сохранения данных в базе данных при подписке на тему в транзакции.
Я пытался использовать оператор .window(100), поэтому я могу массово вставлять каждый раз, когда я получаю 100 событий датчика подряд, но я могу получить только один элемент в .subscribe()
Не хотите отбрасывать события с помощью оператора буфера. Как правильно с этим справиться?
@Override
public void onSensorChanged(SensorEvent sevent) {
Sensor sensor = sevent.sensor;
switch (sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
sensorEventPublishSubject.onNext(sevent);
break;
}
}
sensorEventPublishSubject
.map(event ->
new AccModel(
event.values[0],
event.values[1],
event.values[2],
event.accuracy
)
)
.window(100)
.subscribe(
new Action1<Observable<AccModel>>() {
@Override
public void call(Observable<AccModel> accModelObservable) {
//insert in db
}
}
);