Я определил приложение Celery
в модуле, и теперь я хочу запустить работника из того же модуля в его __main__
, то есть, запустив модуль с python -m
вместо Celery
из командная строка. Я пробовал это:
app = Celery('project', include=['project.tasks'])
# do all kind of project-specific configuration
# that should occur whenever this module is imported
if __name__ == '__main__':
# log stuff about the configuration
app.start(['worker', '-A', 'project.tasks'])
но теперь Сельелли считает, что я бегу рабочего без аргументов:
Usage: worker <command> [options]
Show help screen and exit.
Options:
-A APP, --app=APP app instance to use (e.g. module.attr_name)
[snip]
Сообщение об использовании - это тот, который вы получаете от celery --help
, как будто он не получил команду. Я также пробовал
app.worker_main(['-A', 'project.tasks'])
но он жалуется, что -A
не распознается.
Итак, как мне это сделать? Или, альтернативно, как мне передать обратный вызов работнику, чтобы он записывал информацию о его конфигурации?