Пользовательская настройка Предел скорости толкателя

Я использую обратный вызов Rails after_save в одной из моих моделей ActiveRecord для отправки push-уведомлений клиенту, который затем вызывает частичное обновление. Я использую Пушера. Проблема в том, что я могу создавать или обновлять до 50 записей за 5-10 секунд или что угодно, что отправляет много push-уведомлений и в конечном итоге освежает. Я знаю, что у толкателя есть ограничение скорости не более 10 сообщений в секунду на каждого клиента (соединение). Есть ли способ настроить этот предел скорости, чтобы сказать не более 1 сообщения в минуту на клиента (соединение)?

1 ответ

Примечание. Раньше я работал в Pusher

Ограничение скорости, о котором вы упоминаете, на самом деле при отправке событий между клиентами. Это не влияет на отправку сообщений через их REST API.

Документы о событиях клиента можно найти здесь: http://pusher.com/docs/client_api_guide/client_events#trigger-events

В документах сервера ничего не говорится о лимите скорости: http://pusher.com/docs/server_api_guide/interact_rest_api#publishing-events

У вас есть четыре варианта:

  1. Сделайте что-то на своем сервере, чтобы вы оценивали ограничение отправки сообщений в API-интерфейс Pusher. Это также позволит вам сэкономить ваше распределение "сообщений в день".
  2. Сделайте что-нибудь на клиенте; установите тайм-аут, ожидающий до 10 секунд, чтобы увидеть, будут ли появляться какие-либо другие сообщения обновления. Поэтому он может игнорировать их и обновлять только тогда, когда он уверен, что больше сообщений не поступит, а затем снова запустите обновление после перезагрузки.
  3. Когда вы обновляете страницу, не подключайтесь к Pusher в течение 10 секунд. Таким образом, вы пропустите все другие обновления сообщений из той же партии.
  4. Если возможно, измените свой код, чтобы сообщение, которое вы отправляете, не просто сообщило обновленной странице, но и предоставило информацию, необходимую для динамического изменения страницы на клиенте. Поскольку вы делаете частичное обновление - возможно, через XHR, который получает обновленный контент - это может быть возможно.

licensed under cc by-sa 3.0 with attribution.