From 4504eb6ec975f7bdc9fe68819ff24b4e2ceddd02 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Tue, 5 Apr 2016 22:18:54 -0700 Subject: [PATCH] Add select_for_update() to improve isolation --- channels/database_layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)