-
Notifications
You must be signed in to change notification settings - Fork 19
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
Handle network retries in fetching remote entries #83
Comments
Please also refer to glossarist/iev-data#103 for an initial implementation. |
@ronaldtse we can implement it in the relaton gem, so we don't have to implement the functionality in each flavor gem but in this case using the flavor gems separately won't handle network retries. |
@andrew2net yeah that's okay. However each flavor gem may have different endpoint limitations. How do we express them in the gems and ensure that the user complies with them? e.g. rate limit 6 per second, etc. |
@ronaldtse we can set the information about limitations in the flavor gems and get it as need |
Sounds good. Please help proceed, thanks! |
@ronaldtse the relaton gem is used to fetch documents one by one, so it can't use threads to fetch documents simultaneously. Network retries without parallel querying could significantly slow down fetching documents. |
Perhaps it is wise to use a thread pool? |
Yes, thread poll is that we need to speed up fetching a bunch of documents. But for now, relaton has fetch method which accepts only one reference. A caller has to wait until the relaton returns a result before fetching the next reference. We need to change the way how the other scripts use the relaton. |
How about adding (Though I'm not sure yet if I'll be able to use that reliably. Jekyll doesn't seem to be multi-threaded. However |
@skalee you have a good point. Agree with the treatment. |
Sometimes Relaton source data web sites are unreliable and may require retries.
@skalee suggests that Relaton can handle retries when fetching remote entries.
@andrew2net what do you think is the cleanest way to do so? I imagine we will need some configurable options, and we need to specify the timeouts/parallel/rate limits of each individual service so the user calls won't run into issues.
Originally from glossarist/iev-data#103.
The text was updated successfully, but these errors were encountered: