diff --git a/modules/services/vehicle-stat-service/src/main/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessor.java b/modules/services/vehicle-stat-service/src/main/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessor.java index 482005e2..d4683a1c 100644 --- a/modules/services/vehicle-stat-service/src/main/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessor.java +++ b/modules/services/vehicle-stat-service/src/main/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessor.java @@ -21,7 +21,7 @@ public final class Jt808MileageStreamProcessor { this.zoneId = zoneId; } - public synchronized void process(VehicleEnvelope envelope) { + public void process(VehicleEnvelope envelope) { extractor.extract(envelope).ifPresent(this::processPoint); } diff --git a/modules/services/vehicle-stat-service/src/test/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessorTest.java b/modules/services/vehicle-stat-service/src/test/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessorTest.java index f9c3a5ea..fe972e7d 100644 --- a/modules/services/vehicle-stat-service/src/test/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessorTest.java +++ b/modules/services/vehicle-stat-service/src/test/java/com/lingniu/ingest/vehiclestat/jt808/Jt808MileageStreamProcessorTest.java @@ -8,6 +8,7 @@ import com.lingniu.ingest.vehiclestat.VehicleDailyStatResult; import com.lingniu.ingest.vehiclestat.VehicleStatRepository; import org.junit.jupiter.api.Test; +import java.lang.reflect.Modifier; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; @@ -63,6 +64,15 @@ class Jt808MileageStreamProcessorTest { assertThat(repository.results).isEmpty(); } + @Test + void processDoesNotSerializeAllVehicleMileageUpdatesBehindOneMonitor() throws NoSuchMethodException { + int modifiers = Jt808MileageStreamProcessor.class + .getDeclaredMethod("process", VehicleEnvelope.class) + .getModifiers(); + + assertThat(Modifier.isSynchronized(modifiers)).isFalse(); + } + private static Jt808MileageStreamProcessor processor(VehicleStatRepository repository) { return new Jt808MileageStreamProcessor( new Jt808LocationPointExtractor(),