Skip to content

Commit cc58082

Browse files
author
Alexey Tsitkin
committed
add max retry func
1 parent d34a8c9 commit cc58082

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

auto_tasks/exceptions.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
class RetryableTaskException(Exception):
2-
def __init__(self, inner, delay=None, count_retries=None):
3-
# type: (Exception, int, bool) -> None
2+
def __init__(self, inner, delay=None, count_retries=None, max_retries_func=None):
3+
# type: (Exception, int, bool, Any) -> None
44
self._inner = inner
55

66
self.delay = delay
77
self.count_retries = count_retries
8+
self.max_retries_func = max_retries_func
89

910
def __repr__(self):
1011
# type: () -> str

auto_tasks/service.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ def _auto_task_wrapper(module_name, class_name, func_name, *args, **kwargs):
3939

4040
_auto_task_wrapper.retry(**retry_kwargs)
4141
except MaxRetriesReachedException:
42-
logger.error('Reached max retries in auto task {}.{}.{} with error: {}'.format(module_name, class_name, func_name, repr(exc)))
42+
if exc.max_retries_func:
43+
exc.max_retries_func()
44+
else:
45+
# by default log an error
46+
logger.error('Reached max retries in auto task {}.{}.{} with error: {}'.format(module_name, class_name, func_name, repr(exc)))
4347

4448

4549
class AutoTaskService(BaseAutoTaskService):

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

0 commit comments

Comments
 (0)