use spawn and rate limit for curl

[merge]