Добавление кэша 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.