Hi Yuri
Firstly, I will have to appologise in advance if it seems like I am talking rubbish! This is my first time integrating with a Lithium product, so I'm not really clued in on all the terminology & product offerings. I'm an external developer for the Lithium customer, so, at the moment, I only have limited access and I'm not fully briefed on their setup and what they are using.
At the moment [we] are just exploring what is possible in terms of reducing their workload. They currently apply a custom background to a various users who have made an achievement - around 150 uses on a weekly basis. This is quite a time consuming process to do via the normal website interface.
The requests are being made from a bespoke Windows (.Net) application. Currently it is looping through a list of usernames and:
- call restapi/vc/user/login/<username> to validate the username is part of the community & parse to get the user-id
- call restapi/vc/users/id/<user-id>/profiles/name/portrait_badge_background_image_url/set to set the new background image
- call restapi/vc/users/id/<user-id>/profiles/name/portrait_badge_theme/set to set a default theme is being used (so the background displays)
- call restapi/vc/users/id/<user-id>/profiles/name/portrait_badge_theme/set so the background is displayed
The app performs Step 1. on the inputted list of usernames and builds up a list of valid user-id's. It then loops through that list performing 2-4. I've not timed anything, but step 1. is relatively slow - perhaps 2 or 3 req/sec. Looping over 2-4 runs at "full speed" - the response isn't parsed, so you could figure 10 - 20+ req/sec easily.
We've made the following observations:
- Looping over a list of ~20 usernames and calling restapi/vc/user/login/<username> is not problem.
- Taking that list of 20 and performing steps 2-4 results in Timeout errors at some stage. These timeouts then persist if you exit the application and restart - the timeouts then occur at the first step (user lookup).
So are we falling foul of the throttling? Can you give an indication of what the throttling limits are (req/sec) ?