diff --git a/server/website/website/settings/common.py b/server/website/website/settings/common.py index 43e7628..8b29e6d 100644 --- a/server/website/website/settings/common.py +++ b/server/website/website/settings/common.py @@ -240,6 +240,10 @@ CELERYD_MAX_TASKS_PER_CHILD = 20 # Number of concurrent workers. Defaults to the number of CPUs. # CELERYD_CONCURRENCY = 8 +# Late ack means the task messages will be acknowledged after +# the task has been executed, not just before +CELERY_ACKS_LATE = True + djcelery.setup_loader() # ============================================== diff --git a/server/website/website/utils.py b/server/website/website/utils.py index 5e0a5b8..2678559 100644 --- a/server/website/website/utils.py +++ b/server/website/website/utils.py @@ -513,6 +513,13 @@ def check_and_run_celery(): if 'pong' in celery_status: return 'celery is running' + rabbitmq_status = os.popen('telnet localhost 5672').read() + if 'Connected' in rabbitmq_status: + LOG.info('Rabbitmq is running.') + else: + LOG.warning('Rabbitmq is not running.') + return 'Rabbitmq is not running.' + retries = 0 while retries < 5: LOG.warning('Celery is not running.') diff --git a/server/website/website/views.py b/server/website/website/views.py index deecaea..fd5e949 100644 --- a/server/website/website/views.py +++ b/server/website/website/views.py @@ -1198,7 +1198,7 @@ def give_result(request, upload_code): # pylint: disable=unused-argument if CHECK_CELERY: celery_status = utils.check_and_run_celery() response.update(celery_status=celery_status, message='Result not ready') - status_code = 202 + status_code = 202 return HttpResponse(JSONUtil.dumps(response, pprint=True), status=status_code, content_type='application/json')