Use generic HTTP retry policy by default and rename dedicated decorator
Instead of retrying HTTP requests only for 429 status code by default, prefer to use the generic retry policy enabling to also retry for status codes >= 500 but also on ConnectionError exceptions. Rename throttling_retry decorator to http_retry to reflect this change.
This commit is contained in:
parent
9b3e565cf7
commit
9c55acd286
23 changed files with 71 additions and 62 deletions
|
@ -12,7 +12,7 @@ from tenacity.before_sleep import before_sleep_log
|
|||
|
||||
from swh.lister import USER_AGENT
|
||||
from swh.lister.pattern import CredentialsType, Lister
|
||||
from swh.lister.utils import throttling_retry
|
||||
from swh.lister.utils import http_retry
|
||||
from swh.scheduler.interface import SchedulerInterface
|
||||
from swh.scheduler.model import ListedOrigin
|
||||
|
||||
|
@ -95,7 +95,7 @@ class NpmLister(Lister[NpmListerState, List[Dict[str, Any]]]):
|
|||
params["startkey"] = last_package_id
|
||||
return params
|
||||
|
||||
@throttling_retry(before_sleep=before_sleep_log(logger, logging.WARNING))
|
||||
@http_retry(before_sleep=before_sleep_log(logger, logging.WARNING))
|
||||
def page_request(self, last_package_id: str) -> requests.Response:
|
||||
params = self.request_params(last_package_id)
|
||||
logger.debug("Fetching URL %s with params %s", self.url, params)
|
||||
|
|
|
@ -35,6 +35,11 @@ def npm_incremental_listing_page2(datadir):
|
|||
return json.loads(Path(datadir, "npm_incremental_page2.json").read_text())
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def retry_sleep_mock(mocker):
|
||||
mocker.patch.object(NpmLister.page_request.retry, "sleep")
|
||||
|
||||
|
||||
def _check_listed_npm_packages(lister, packages, scheduler_origins):
|
||||
for package in packages:
|
||||
package_name = package["doc"]["name"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue