diff --git a/src/sentry/api/endpoints/relay/register_response.py b/src/sentry/api/endpoints/relay/register_response.py index 401dbb1d6e97..cdb723ac108a 100644 --- a/src/sentry/api/endpoints/relay/register_response.py +++ b/src/sentry/api/endpoints/relay/register_response.py @@ -15,6 +15,7 @@ from sentry.api.serializers import serialize from sentry.models.relay import Relay, RelayUsage from sentry.relay.utils import get_header_relay_id, get_header_relay_signature +from sentry.tasks.process_buffer import buffer_incr from . import RelayIdSerializer @@ -101,9 +102,12 @@ def post(self, request: Request) -> Response: except RelayUsage.DoesNotExist: RelayUsage.objects.create(relay_id=relay_id, version=version, public_key=public_key) else: - relay_usage.last_seen = timezone.now() - relay_usage.public_key = public_key - relay_usage.save() + buffer_incr( + model=RelayUsage, + columns={}, + filters={"id": relay_usage.id}, + extra={"last_seen": timezone.now(), "public_key": public_key}, + ) assert relay is not None return Response(serialize({"relay_id": relay.relay_id})) diff --git a/tests/sentry/api/endpoints/test_relay_register.py b/tests/sentry/api/endpoints/test_relay_register.py index 6b5834d6a88c..e49ad0f97387 100644 --- a/tests/sentry/api/endpoints/test_relay_register.py +++ b/tests/sentry/api/endpoints/test_relay_register.py @@ -533,7 +533,8 @@ def test_relay_usage_is_updated_at_registration(self) -> None: self.register_relay(key_pair, "2.2.2", relay_id) after_second_relay = timezone.now() # re register the first one in order to update the last used time - self.register_relay(key_pair, "1.1.1", relay_id) + with self.tasks(): + self.register_relay(key_pair, "1.1.1", relay_id) after_re_register = timezone.now() rv1 = RelayUsage.objects.get(relay_id=relay_id, version="1.1.1")