Как запустить работника Celery из скрипта / модуля __main__?

Такие вещи не допускаются практически на любом языке (я не могу сейчас думать об этом), в основном для предотвращения путаницы.

Ваш пример -d - отличный пример. Как компилятор знает, если вы имели в виду «переменную с именем -d» или «отрицательный номер в переменной d»? Поскольку он не может сказать (или, что еще хуже, может , чтобы вы не могли быть уверены, что произойдет, когда вы наберете это, не прочитав остальную часть файла), это не разрешено.

Пример 7g - это одно и то же. Вы можете указать числа как определенные базы или типы, добавив буквы в конец. Число 8357 является int в Java, где 8357L является длинным (поскольку на конце есть «L»). Если бы переменные могли начинаться с цифр, были бы случаи, когда вы не могли бы определить, должно ли оно быть именем переменной или просто литералом.

Я бы предположил, что остальные, перечисленные вами, имеют похожие причины , некоторые из которых могут быть историческими (т. е. C не мог сделать это по причине X , а Java спроектирована так, чтобы выглядеть как C, поэтому они сохранили правило).

На практике , они почти никогда не являются проблемой. Очень редко вы находите ситуацию, когда такие вещи раздражают. Тот, с которым вы столкнетесь больше всего, это переменные, начинающиеся с цифр, но вы всегда можете просто их прописать (т. Е. OneThing, twoThing, threeThing и т. Д.).

17
задан Fred Foo 30 April 2014 в 13:13
поделиться

1 ответ

с использованием метода app.worker_main (v3.1.12):

± cat start_celery.py
#!/usr/bin/python

from myapp import app


if __name__ == "__main__":
    argv = [
        'worker',
        '--loglevel=DEBUG',
    ]
    app.worker_main(argv)
17
ответ дан okocian 30 April 2014 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: