diff --git a/channels/database_layer.py b/channels/database_layer.py index 4f23142..b9d2b31 100644 --- a/channels/database_layer.py +++ b/channels/database_layer.py @@ -60,7 +60,7 @@ class DatabaseChannelLayer(object): while True: try: with transaction.atomic(): - message = self.channel_model.objects.filter(channel__in=channels).order_by("id").first() + message = self.channel_model.objects.select_for_update().filter(channel__in=channels).order_by("id").first() if message: self.channel_model.objects.filter(pk=message.pk).delete() return message.channel, self.deserialize(message.content)