Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3 -> 2 notion requests / second #80

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dionjwa
Copy link

@dionjwa dionjwa commented Sep 22, 2023

I am running from the main branch, and I am constantly getting 502s. According to the notion docs, rate limit requests should be 429 (https://developers.notion.com/reference/request-limits) but I suspect that their API is not perfect, and returns 502s instead a lot of the time.

Anecdotally, someone claims that the limit is 3/requests per second. As this value is set in docu-notion I can imagine that due to network, randomness, having the set limit be exactly their internal limit would mean that sometimes you skirt over the edge.

https://www.reddit.com/r/Notion/comments/xfufed/how_do_you_handle_request_limits_using_notion_api/

I have found that setting it to 2 greatly reduces the 502 timeout/rate limit issues.


This change is Reviewable

@stackblitz
Copy link

stackblitz bot commented Sep 22, 2023

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@hatton
Copy link
Member

hatton commented Sep 23, 2023

@dionjwa, thanks for doing that research. If the info in your link is correct, (2700 API calls over a 15 minute period) then we should be able to change the rate-limiting algorithm to match that?

@hatton
Copy link
Member

hatton commented Sep 23, 2023

Related, a blog post covering various limits: https://notionmastery.com/pushing-notion-to-the-limits/

@hatton
Copy link
Member

hatton commented Sep 23, 2023

In case you have time to try this out, it seems that we could use the same RateLimiter but with an different interval:

const notionLimiter = new RateLimiter({
 // the NOtion API docs say "an average of 3 / second", but reportedly, it's actually 2700 per 15 minutes. See https://notionmastery.com/pushing-notion-to-the-limits/
  tokensPerInterval: 2700,
  interval: 15*60*1000,
});

@hatton
Copy link
Member

hatton commented Sep 23, 2023

Later, I realized that while that change might speed up operations, it shouldn't improve anything.

I did some work making docu-notion more resilient to timeouts. That is now PR #81. Even with no timeout at all, it was able to handle docs.BloomLibrary.org.

jellejurre added a commit to jellejurre/docu-notion that referenced this pull request Mar 22, 2024
jellejurre added a commit to jellejurre/docu-notion that referenced this pull request Jun 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants