поискового вызова осуществляется с помощью Apache Cassandra и драйверов клиентов путем передачи в pagingState
, как описано в разделе 8 native protocol specification:
Однако, если некоторые результаты не являются частью первой реакции, то Has_more_pages флаг будет установлен, и результат будет содержать значение paging_state. В этом случае paging_state значение следует использовать в QUERY или EXECUTE сообщение (то есть запрос же как оригинал одного или поведение не определено), чтобы получить следующую страницу результатов .
Как вы запрашиваете данные, это состояние подкачки можно получить и сохранить для последующего использования так, как вы описываете при запуске задания из предыдущей позиции.
Это может быть достигнуто с помощью Java-драйвер DataStax, как описано в руководстве на странице «оповещение по громкой связи» под 'Saving and Reusing the paging state' разделом:
Драйвер выставляет объект PagingState, который представляет, где мы были в результате устанавливается, когда последняя страница была принесла:
ResultSet resultSet = session.execute("your query");
// iterate the result set...
PagingState pagingState = resultSet.getExecutionInfo().getPagingState();
Этот объект может быть сериализовать в строку или массив байтов:
String string = pagingState.toString();
byte[] bytes = pagingState.toBytes();
Это последовательную форму можно сохранить в той или иной форме постоянного хранения для повторного использования позже. В нашем примере веб-службы мы, вероятно, сохраним версию строки в качестве параметра запроса в URL-адрес следующей страницы (http://myservice.com/results?page= < ...>). Когда это значение извлекается позже, мы можем десериализации его и инжектируем его в своем заявлении:
PagingState pagingState = PagingState.fromString(string);
Statement st = new SimpleStatement("your query");
st.setPagingState(pagingState);
ResultSet rs = session.execute(st);
Другие водители должны иметь подобный механизм подкачки таким образом.
вот оно, спасибо – Michal