Мы использовали объект Context в длинной цепочке асинхронного выполнения.
Например:
private void checkVehicle(final JsonObject cmd,
final RedisFleetStorage storage,
final Handler<AsyncResult<String>> handler) {
// omitted for brevity
// some async call to another verticle
storage.getVehicle(fleetId, vehicleId, result -> {
if (!result.succeeded()) {
LOG.error(String.format("Impossible to get vehicleStatus %s:%s", fleetId, vehicleId), result.cause());
handler.handle(Future.failedFuture("KO");
return;
}
// put vehicle in context for later use
final Vehicle vehicle = result.result();
LOG.info("vehicle details {}", vehicle);
context.put("vehicle", vehicle);
handler.handle(Future.succeededFuture());
});
}
Как видно выше, мы помещаем объект (транспортное средство) в контекст, а затем получаем доступ позже при выполнении.
Но мы подозреваем, что объект транспортного средства изменен другим исполнением.Является ли это возможным?Может ли другой цикл обработки событий изменить объект в контексте?