Я пытаюсь использовать API Discourse для отправки шуточных ответов на форуме. Например, если кто-то напишет «Linux» в теме, Discobot ответит: «Вы имеете в виду GNU/Linux?»
Это работает, пока кто-то не ответит той же фразой. После этого в течение двух минут (почти точно двух) я получаю множество ответов с кодом 429 или пустые ответы, после чего API снова начинает обрабатывать запросы в обычном режиме.
Например:
Linux
FOSS
dotnet
Java
Linux
В этом случае всё работает корректно. Однако:
Linux
FOSS
dotnet
Linux
Linux
В этом случае всё ломается.
Есть ли у кого-нибудь идеи, что означает этот двухминутный интервал? Мы пробовали изменять настройки app.yml и корректировать ограничения скорости API, но это не помогло.
Это означает, что для вас установлено ограничение скорости запросов. Если вы хотите отслеживать новые посты, такой метод опроса (polling) крайне неэффективен. Могу я предложить использовать вебхуки? Таким образом вы сможете реагировать на новые посты, вместо того чтобы постоянно опрашивать сервер, даже когда ничего не происходит.
По умолчанию добавляется шаблон nginx. Он будет одной из самых первых строк в app.yml. Возможно, вам стоит удалить строку, касающуюся ограничений скорости (rate limits), и пересобрать приложение, чтобы изменения вступили в силу.