Skip to content

Commit f3ebd51

Browse files
authored
Merge pull request #29 from cuda-networks/execute_inline_fix
override execute_inline with global setting
2 parents df9882d + 9b34f62 commit f3ebd51

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ The following settings can be used to fine tune django-eb-sqs. Copy them into yo
148148
- EB_SQS_DEFAULT_MAX_RETRIES (`0`): Default retry limit for all tasks.
149149
- EB_SQS_DEFAULT_COUNT_RETRIES (`True`): Count retry calls. Needed if max retries check shall be executed.
150150
- EB_SQS_DEFAULT_QUEUE (`default`): Default queue name if none is specified when creating a task.
151-
- EB_SQS_EXECUTE_INLINE (`False`): Execute tasks immediately without using SQS. Useful during development.
151+
- EB_SQS_EXECUTE_INLINE (`False`): Execute tasks immediately without using SQS. Useful during development. Global setting `True` will override setting it on a task level.
152152
- EB_SQS_FORCE_SERIALIZATION (`False`): Forces serialization of tasks when executed `inline`. This setting is helpful during development to see if all arguments are serialized and deserialized properly.
153153
- EB_SQS_GROUP_CALLBACK_TASK (`None`): Group callback (String or Function). Must be a valid task.
154154
- EB_SQS_QUEUE_PREFIX (`eb-sqs-`): Prefix to use for the queues. The prefix is added to the queue name.

eb_sqs/decorators.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,39 @@
22

33
from eb_sqs import settings
44
from eb_sqs.worker.worker_factory import WorkerFactory
5+
from eb_sqs.worker.worker_task import WorkerTask
6+
7+
8+
def _get_kwarg_val(kwargs, key, default):
9+
# type: (dict, str, Any) -> Any
10+
return kwargs.pop(key, default) if kwargs else default
511

612

713
def func_delay_decorator(func, queue_name, max_retries_count, use_pickle):
8-
# type: (Any, unicode, int, bool) -> (tuple, dict)
14+
# type: (Any, str, int, bool) -> (tuple, dict)
915
def wrapper(*args, **kwargs):
1016
# type: (tuple, dict) -> Any
1117
queue = _get_kwarg_val(kwargs, 'queue_name', queue_name if queue_name else settings.DEFAULT_QUEUE)
1218
max_retries = _get_kwarg_val(kwargs, 'max_retries', max_retries_count if max_retries_count else settings.DEFAULT_MAX_RETRIES)
1319
pickle = _get_kwarg_val(kwargs, 'use_pickle', use_pickle if use_pickle else settings.USE_PICKLE)
1420

15-
execute_inline = _get_kwarg_val(kwargs, 'execute_inline', settings.EXECUTE_INLINE)
21+
execute_inline = True if settings.EXECUTE_INLINE else _get_kwarg_val(kwargs, 'execute_inline', False)
1622
delay = _get_kwarg_val(kwargs, 'delay', settings.DEFAULT_DELAY)
1723
group_id = _get_kwarg_val(kwargs, 'group_id', None)
1824

1925
worker = WorkerFactory.default().create()
2026
return worker.delay(group_id, queue, func, args, kwargs, max_retries, pickle, delay, execute_inline)
2127

22-
def _get_kwarg_val(kwargs, key, default):
23-
# type: (dict, unicode, Any) -> Any
24-
return kwargs.pop(key, default) if kwargs else default
25-
2628
return wrapper
2729

2830

2931
def func_retry_decorator(worker_task):
3032
# type: (WorkerTask) -> (tuple, dict)
3133
def wrapper(*args, **kwargs):
3234
# type: (tuple, dict) -> Any
33-
execute_inline = kwargs.pop('execute_inline', settings.EXECUTE_INLINE) if kwargs else settings.EXECUTE_INLINE
34-
delay = kwargs.pop('delay', settings.DEFAULT_DELAY) if kwargs else settings.DEFAULT_DELAY
35-
count_retries = kwargs.pop('count_retries', settings.DEFAULT_COUNT_RETRIES) if kwargs else settings.DEFAULT_COUNT_RETRIES
35+
execute_inline = True if settings.EXECUTE_INLINE else _get_kwarg_val(kwargs, 'execute_inline', False)
36+
delay = _get_kwarg_val(kwargs, 'delay', settings.DEFAULT_DELAY)
37+
count_retries = _get_kwarg_val(kwargs, 'count_retries', settings.DEFAULT_COUNT_RETRIES)
3638

3739
worker = WorkerFactory.default().create()
3840
return worker.retry(worker_task, delay, execute_inline, count_retries)
@@ -41,7 +43,7 @@ def wrapper(*args, **kwargs):
4143

4244
class task(object):
4345
def __init__(self, queue_name=None, max_retries=None, use_pickle=None):
44-
# type: (unicode, int, bool) -> None
46+
# type: (str, int, bool) -> None
4547
self.queue_name = queue_name
4648
self.max_retries = max_retries
4749
self.use_pickle = use_pickle

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.10',
9+
version='1.11',
1010
package_dir={'eb_sqs': 'eb_sqs'},
1111
include_package_data=True,
1212
packages=find_packages(),

0 commit comments

Comments
 (0)