Twilio Chat API - получить список сообщений с нумерацией страниц (pageNo, pageLimit)

Уже упоминалось, что hashmaps являются O(n/m) в среднем, если n - количество элементов, а m - размер. Также было упомянуто, что в принципе все это может рухнуть в единый список с запросом времени O(n). (Это все предполагает, что вычисление хеша является постоянным временем).

Однако то, что не часто упоминается, заключается в том, что с вероятностью не менее 1-1/n (так что для 1000 предметов, что является шансом 99,9%) наибольший ведро не будет заполнено больше, чем O(logn)! Следовательно, соответствие средней сложности двоичных деревьев поиска. (И константа хороша, более жесткая привязка - (log n)*(m/n) + O(1)).

Все, что требуется для этой теоретической оценки, состоит в том, что вы используете достаточно хорошую хеш-функцию (см. Википедия: Универсальная хэширование . Это может быть так же просто, как a*x>>m). И конечно, что человек, дающий вам значения хешу, не знает, как вы выбрали ваши случайные константы.

TL; DR: С очень высокой вероятностью худший случай get / put сложность хэш-карты O(logn).

0
задан Sulaiman 18 January 2019 в 11:00
поделиться

1 ответ

Разработчик Twilio здесь.

Ресурсы Twilio не поддерживают нумерацию страниц на основе номеров. Вместо этого страница данных будет включать свойства next_page_uri и previous_page_uri. Вы можете контролировать размер страницы с помощью параметра PageSize.

При использовании библиотек вы можете настроить их автоматическое разбиение на страницы. Например:

twilioClient.chat.services(TWILIO_CHAT_SERVICE_SID)
  .channels(req.params.id)
  .messages
  .list({
    limit: 400,
    pageSize: 100
  });

в конечном итоге вызовут API 4 раза, чтобы вернуть 400 сообщений.

Вы можете узнать больше о нумерации ресурсов Twilio в документации.

0
ответ дан philnash 18 January 2019 в 11:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: