Skip to content

Commit cad568f

Browse files
committed
Proper Django DB handling when run using the process_queue mgtm. command
1 parent d3928f7 commit cad568f

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

eb_sqs/worker/commons.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import absolute_import, unicode_literals
2+
3+
from contextlib import contextmanager
4+
5+
from django.db import reset_queries, close_old_connections
6+
7+
8+
@contextmanager
9+
def django_db_management():
10+
# type: () -> None
11+
reset_queries()
12+
close_old_connections()
13+
try:
14+
yield
15+
finally:
16+
close_old_connections()

eb_sqs/worker/service.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
from __future__ import absolute_import, unicode_literals
22

3-
import boto3
43
import logging
4+
from datetime import timedelta
5+
6+
import boto3
57
from botocore.config import Config
68
from botocore.exceptions import ClientError
7-
from datetime import timedelta
89
from django.utils import timezone
910

1011
from eb_sqs import settings
12+
from eb_sqs.worker.commons import django_db_management
1113
from eb_sqs.worker.worker import Worker
1214
from eb_sqs.worker.worker_exceptions import ExecutionFailedException
1315
from eb_sqs.worker.worker_factory import WorkerFactory
@@ -116,7 +118,9 @@ def process_message(self, msg, worker):
116118
receive_count, msg.message_id, msg.body
117119
))
118120

119-
worker.execute(msg.body)
121+
with django_db_management():
122+
worker.execute(msg.body)
123+
120124
logger.debug('[django-eb-sqs] Processed message {}'.format(msg.message_id))
121125
except ExecutionFailedException as exc:
122126
logger.warning('[django-eb-sqs] Handling message {} got error: {}'.format(msg.message_id, repr(exc)))

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name='django-eb-sqs',
9-
version='1.12',
9+
version='1.13',
1010
package_dir={'eb_sqs': 'eb_sqs'},
1111
include_package_data=True,
1212
packages=find_packages(),

0 commit comments

Comments
 (0)