celery: added test view to test celery exception handling

This commit is contained in:
RhodeCode Admin 2024-06-14 08:58:18 +02:00
parent bb46f148f2
commit c2075c1239
3 changed files with 28 additions and 0 deletions

View file

@ -40,6 +40,15 @@ def admin_routes(config):
route_name='ops_error_test', request_method='GET',
renderer='json_ext')
config.add_route(
name='ops_celery_error_test',
pattern='/error-celery')
config.add_view(
OpsView,
attr='ops_celery_error_test',
route_name='ops_celery_error_test', request_method='GET',
renderer='json_ext')
config.add_route(
name='ops_redirect_test',
pattern='/redirect')

View file

@ -66,6 +66,20 @@ class OpsView(BaseAppView):
'Client:{}. Generation time: {}.'.format(self.request.user, time.time()))
raise TestException(msg)
def ops_celery_error_test(self):
"""
Test exception handling and emails on errors
"""
from rhodecode.lib.celerylib import tasks, run_task
# add timeout so we add some sort of rate limiter
time.sleep(2)
msg = ('RhodeCode Enterprise test exception. '
'Client:{}. Generation time: {}.'.format(self.request.user, time.time()))
celery_task = run_task(tasks.test_celery_exception, msg)
return {'task': str(celery_task)}
def ops_redirect_test(self):
"""
Test redirect handling

View file

@ -402,6 +402,11 @@ def sync_last_update_for_objects(*args, **kwargs):
repo_gr.update_commit_cache()
@async_task(ignore_result=True, base=RequestContextTask)
def test_celery_exception(msg):
raise Exception(f'Test exception: {msg}')
@async_task(ignore_result=True, base=RequestContextTask)
def sync_last_update(*args, **kwargs):
sync_last_update_for_objects(*args, **kwargs)