Force the Celery workers to run only one task at a time

This forces the tasks to be run serially.
This commit is contained in:
mprahl
2019-12-09 08:46:06 -05:00
parent 884d7fb79c
commit fd93c8f436
2 changed files with 9 additions and 0 deletions

View File

@@ -55,6 +55,8 @@ celery_configs = {
name[7:]: getattr(conf, name)
for name in dir(conf) if name.startswith("celery_")
}
# Only allow a single process so that tasks are always serial per worker
celery_configs["worker_concurrency"] = 1
celery_app.conf.update(**celery_configs)

View File

@@ -670,6 +670,13 @@ class Config(object):
"default": 30,
"desc": "The timeout configuration for dnf operations, in seconds."
},
"celery_worker_prefetch_multiplier": {
"type": int,
"default": 1,
"desc": "This defaults to 1 so that the worker doesn't fetch more messages than it can "
"handle at a time. This so that general tasks aren't starved when running "
"a long handler.",
},
}
def __init__(self, conf_section_obj):