Skip to content

celery multi - preload options unrecognized #6307

@maconfr

Description

@maconfr

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:disabled

This 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:disabled

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions