vaultQuery превышает размер страницы по умолчанию

Я провел несколько нагрузочных тестов в своем простом CordApp, и теперь, когда я делаю запрос к хранилищу, чтобы проверить список транзакций, я получаю исключение в журналах: net.corda.core.node.services.VaultQueryException: Пожалуйста, укажите PageSpecification, поскольку результатов [201] больше, чем размер страницы по умолчанию [200]. Кажется, нет возможности передать параметр для пейджинга. Нужно ли фильтровать результаты? Это не повлияет на причину исключения. Какова рекомендуемая практика?


person Kevin Peterson    schedule 04.09.2018    source источник


Ответы (1)


Согласно документации здесь ссылка

Максимальный размер страницы

val pagingSpec = PageSpecification(DEFAULT_PAGE_NUM, MAX_PAGE_SIZE)
val criteria = VaultQueryCriteria(status = Vault.StateStatus.ALL)
val results = vaultService.queryBy<ContractState>(criteria, paging = pagingSpec)

Перелистывая каждую страницу.

var pageNumber = DEFAULT_PAGE_NUM
val states = mutableListOf<StateAndRef<ContractState>>()
do {
    val pageSpec = PageSpecification(pageNumber = pageNumber, pageSize = pageSize)
    val results = vaultService.queryBy<ContractState>(VaultQueryCriteria(), pageSpec)
    states.addAll(results.states)
    pageNumber++
} while ((pageSpec.pageSize * (pageNumber - 1)) <= results.totalStatesAvailable)
person Adrian    schedule 05.09.2018