-
-
Notifications
You must be signed in to change notification settings - Fork 5k
Closed
Description
Preload options are not unrecognized anymore since celery v4.4.4
The example at Preload options works with celery v4.4.3 but not with >=4.4.4.
# app.py
from celery import Celery
from celery import signals
from celery.bin import Option
app = Celery()
def add_preload_options(parser):
parser.add_argument(
"-Z", "--template", default="default", help="Configuration template to use.",
)
app.user_options["preload"].add(add_preload_options)
@signals.user_preload_options.connect
def on_preload_parsed(options, **kwargs):
print(options["template"])Here is the output with v4.4.3:
$ venv/bin/celery \
> multi start worker1 \
> -A app \
> --template=foo \
> --concurrency=1
celery multi v4.4.3 (cliffs)
> Starting nodes...
foo
> worker1@d113: OK
$ venv/bin/celery -A app report
default
software -> celery:4.4.3 (cliffs) kombu:4.6.11 py:3.7.3
billiard:3.6.3.0 py-amqp:2.6.1
platform -> system:Linux arch:64bit, ELF
kernel version:4.19.0-10-amd64 imp:CPython
loader -> celery.loaders.app.AppLoader
settings -> transport:amqp results:disabledThis is the output with v4.4.7:
$ venv/bin/celery \
> multi start worker1 \
> -A app \
> --template=foo \
> --concurrency=1
celery multi v4.4.7 (cliffs)
> Starting nodes...
usage: /tmp/celery_preload/venv/lib/python3.7/site-packages/celery/bin/celery.py worker [options]
/tmp/celery_preload/venv/lib/python3.7/site-packages/celery/bin/celery.py: error: unrecognized arguments: --template=foo
> worker1@d113: * Child terminated with exit code 2
FAILED
$ venv/bin/celery -A app report
default
software -> celery:4.4.7 (cliffs) kombu:4.6.11 py:3.7.3
billiard:3.6.3.0 py-amqp:2.6.1
platform -> system:Linux arch:64bit, ELF
kernel version:4.19.0-10-amd64 imp:CPython
loader -> celery.loaders.app.AppLoader
settings -> transport:amqp results:disabledReactions are currently unavailable