diff --git a/README.md b/README.md index 8e1209a..0239cef 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,8 @@ This tap: { "start_date": "2010-01-01", "api_key": "", - "site": "" + "site": "", + "time_between_calls": None } ``` diff --git a/tap_chargebee/client.py b/tap_chargebee/client.py index 3edde8d..5eeed65 100644 --- a/tap_chargebee/client.py +++ b/tap_chargebee/client.py @@ -16,6 +16,7 @@ def __init__(self, config, api_result_limit=100, include_deleted=True): self.api_result_limit = api_result_limit self.include_deleted = include_deleted self.user_agent = self.config.get('user_agent') + self.time_between_calls = self.config.get('time_between_calls', None) def get_headers(self): headers = {} @@ -41,6 +42,9 @@ def make_request(self, url, method, params=None, base_backoff=15, if params is None: params = {} + # sleep for desired amount to prevent rate limiting + if self.time_between_calls is not None: + time.sleep(self.time_between_calls) LOGGER.info("Making {} request to {}".format(method, url)) response = requests.request( diff --git a/tap_chargebee/streams/base.py b/tap_chargebee/streams/base.py index 8dbccb8..348c4a6 100644 --- a/tap_chargebee/streams/base.py +++ b/tap_chargebee/streams/base.py @@ -1,4 +1,5 @@ import singer +import datetime from dateutil.parser import parse from tap_framework.streams import BaseStream