|
6 | 6 | import gzip
|
7 | 7 | import time
|
8 | 8 |
|
9 |
| -from datetime import datetime, timedelta |
| 9 | +from datetime import timedelta |
10 | 10 | from collections import defaultdict
|
11 | 11 |
|
12 | 12 | from sentry_sdk.utils import Dsn, logger, capture_internal_exceptions, json_dumps
|
13 | 13 | from sentry_sdk.worker import BackgroundWorker
|
14 | 14 | from sentry_sdk.envelope import Envelope, Item, PayloadRef
|
15 | 15 |
|
| 16 | +from sentry_sdk._compat import datetime_utcnow |
16 | 17 | from sentry_sdk._types import TYPE_CHECKING
|
17 | 18 |
|
18 | 19 | if TYPE_CHECKING:
|
| 20 | + from datetime import datetime |
19 | 21 | from typing import Any
|
20 | 22 | from typing import Callable
|
21 | 23 | from typing import Dict
|
@@ -122,7 +124,7 @@ def __del__(self):
|
122 | 124 | def _parse_rate_limits(header, now=None):
|
123 | 125 | # type: (Any, Optional[datetime]) -> Iterable[Tuple[DataCategory, datetime]]
|
124 | 126 | if now is None:
|
125 |
| - now = datetime.utcnow() |
| 127 | + now = datetime_utcnow() |
126 | 128 |
|
127 | 129 | for limit in header.split(","):
|
128 | 130 | try:
|
@@ -209,7 +211,7 @@ def _update_rate_limits(self, response):
|
209 | 211 | # sentries if a proxy in front wants to globally slow things down.
|
210 | 212 | elif response.status == 429:
|
211 | 213 | logger.warning("Rate-limited via 429")
|
212 |
| - self._disabled_until[None] = datetime.utcnow() + timedelta( |
| 214 | + self._disabled_until[None] = datetime_utcnow() + timedelta( |
213 | 215 | seconds=self._retry.get_retry_after(response) or 60
|
214 | 216 | )
|
215 | 217 |
|
@@ -316,13 +318,13 @@ def _check_disabled(self, category):
|
316 | 318 | def _disabled(bucket):
|
317 | 319 | # type: (Any) -> bool
|
318 | 320 | ts = self._disabled_until.get(bucket)
|
319 |
| - return ts is not None and ts > datetime.utcnow() |
| 321 | + return ts is not None and ts > datetime_utcnow() |
320 | 322 |
|
321 | 323 | return _disabled(category) or _disabled(None)
|
322 | 324 |
|
323 | 325 | def _is_rate_limited(self):
|
324 | 326 | # type: () -> bool
|
325 |
| - return any(ts > datetime.utcnow() for ts in self._disabled_until.values()) |
| 327 | + return any(ts > datetime_utcnow() for ts in self._disabled_until.values()) |
326 | 328 |
|
327 | 329 | def _is_worker_full(self):
|
328 | 330 | # type: () -> bool
|
|
0 commit comments