{"errors":["Вы выполнили это действие слишком много раз. Пожалуйста, подождите несколько секунд перед повторной попыткой."],"error_type":"rate_limit","extras":{"wait_seconds":0}}
Как мне устранить эту ошибку? Пожалуйста, дайте совет.
Ограничение частоты создания тем = 0 (после создания темы пользователи должны ждать (n) секунд перед созданием следующей темы).
Ограничение частоты создания постов = 0 (после публикации поста пользователи должны ждать (n) секунд перед созданием следующего поста).
Ограничение частоты создания тем новыми пользователями = 0 (после создания темы новые пользователи должны ждать (n) секунд перед созданием следующей темы).
Ограничение частоты создания постов новыми пользователями = 0 (после публикации поста новые пользователи должны ждать (n) секунд перед созданием следующего поста).
Однако ошибка всё ещё сохраняется. Есть ли другие ограничения, которые мне следует проверить?
Я пытаюсь создать темы через API. При попытке создать около 100 тем через API возникает эта ошибка.
Также я пытаюсь обновить теги для своих тем через API. На моем форуме сотни тем, у которых нет тегов, поэтому я обновляю их через API.
Привет
У меня возникла та же проблема, но с операциями чтения.
Я создаю интеграцию с Discourse и использую API для чтения большого количества постов. Я не выполняю никаких операций записи, только чтение. Чтобы получить последние посты, я делаю следующее:
Получаю последние темы через endpoint /latest.json
Последовательно получаю все темы через /t/:id, чтобы получить поток постов и пройтись по ним с пагинацией
Если в теме больше 20 постов, получаю их ID из “stream” и последовательно запрашиваю их порциями по 20 штук
Кроме того, я выполняю все запросы в очереди и стараюсь отправлять не более ~25 запросов за 10 секунд, но всё равно часто вижу ошибку “Вы выполнили это действие слишком много раз” для запросов на чтение темы или постов. Я зашёл в настройки Discourse, но не могу найти здесь никаких ограничений для чтения. Я вижу только ограничения для “Создания тем” и других операций записи.
Есть ли что-то, что я могу с этим сделать? Спасибо за любые советы и извините, что поднимаю старую тему.
Но, похоже, дело не в использовании ?print=true, а в чём-то другом. Обязательно попробую.Но, насколько я понимаю, это поможет только для тем, где больше 20 сообщений. Я считаю, что у большинства наших тем их меньше, поэтому реальным узким местом является слишком большое количество запросов для тем.
Да, это ограничение для обычных пользователей. Если у вас есть ключ API администратора, это ограничение на вас не распространяется.
Ага, да, скорее всего именно так.
Помимо обработки ошибок 429 и замедления работы на указанное время, есть несколько вариантов.
Я бы начал с использования плагина Data Explorer для написания запроса, который получит все нужные вам темы. Насколько я знаю, он может вернуть до 1000 результатов. Затем вы можете использовать API для вызова этого запроса и получения ответа.
В зависимости от вашего сценария использования здесь также могут помочь вебхуки. Вы можете настроить их для каждой новой темы и поста, просто слушая весь новый контент.
Если вы всё же решите, что вам нужно увеличить лимиты скорости работы API, мы можем это сделать, но только для сайтов на нашем корпоративном плане, так как они не размещаются на нашем общем хостинге для профессиональных/бизнес-пользователей.
Проблема использования плагина «Исследователь данных» заключается в том, что мы не единственные пользователи интеграции с Discourse. Мы (fibery.io) позволяем нашим клиентам интегрировать их экземпляры Discourse, чтобы они могли беспрепятственно синхронизировать данные с нашим инструментом.
Вебхуки — это хорошее дополнение, но они не помогут при первой синхронизации (которая является самой ресурсоемкой, например, темы и сообщения за последний месяц). После этого мы выполняем плановую синхронизацию новых данных, и это не вызывает проблем.
Проверка кода 429 и повторная попытка работают нормально, хотя иногда могут быть медленными.