Добавление кэша Mongodb Panache Quarkus Reactive

я пытаюсь ускорить мой запрос mongodb panache, используя quarkus и реактивный, я пытаюсь использовать кеш и получить лучшую разбивку на страницы, но не могу заставить его работать, это мой класс java:

      @ApplicationScoped
@RegisterForReflection
public class BrandRepository implements ReactivePanacheMongoRepositoryBase<Brands, Integer> {

  public ReactivePanacheQuery<Brands> listBrands() {
    return Brands.findAll(Sort.by("name").ascending());
  }
}

@Path("/brand/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@RegisterForReflection
public class brand {
  private static final Logger LOG = LoggerFactory.getLogger(brand.class);

  @Inject BrandRepository br;

  @GET
  public Uni<Response> list(
      @DefaultValue("0") @QueryParam("page") Integer page,
      @DefaultValue("10") @QueryParam("page_size") Integer page_size) {
    Pagination pagination = new Pagination();
    if (page != null && page >= 1) {
      pagination.setPage(page);
      page--;
    } else {
      page = 0;
      pagination.setPage(1);
    }
    if (page_size == null || page_size <= 0) {
      page_size = 10;
    }
    pagination.setPageSize(page_size);
    return br.listBrands()
        .page(Page.of(page, page_size))
        .list()
        .map(
            b -> {
              pagination.setTotalCount(b.size());
              LOG.info("listBrands");
              return Response.ok(
                      new BrandResponseList(new Metadata("success", 200, "ok"), b, pagination))
                  .build();
            });
  }
}

Другая проблема, с которой я столкнулся, заключается в том, чтобы подсчитать общее количество br.listBrands(), а не общее количество после разбиения на страницы.

Спасибо за помощь

1 ответ

Для кеша вы пытались использовать@CacheResult?

Здесь у нас есть руководство, объясняющее, как использовать https://quarkus.io/guides/cache.

Другие вопросы по тегам