我有一个用rabbitmq设置的芹菜。问题是celery在运行长任务时将任务移动到保留状态,并且在长时间运行的任务完成之前不执行它们。
我想在不使用路由的情况下实现这一目标,并启用" -Ofair"国旗做的工作。 Prefork pool prefetch settings
如何在celery python中启用标志?感谢
我正在使用芹菜3.1.19
type_info
我使用Celery如下,并发性设置为4:
$ celery report
software -> celery:3.1.19 (Cipater) kombu:3.0.32 py:3.4.3
billiard:3.3.0.22 py-amqp:1.4.8
platform -> system:Linux arch:64bit, ELF imp:CPython
loader -> celery.loaders.default.Loader
settings -> transport:amqp results:disabled
以下是我开始工作的方式:
app = celery.Celery()
app.conf.update(
BROKER_URL=broker,
CELERY_RESULT_BACKEND=backend,
CELERY_TASK_SERIALIZER='json',
CELERY_IMPORTS=imports or [],
CELERYD_CONCURRENCY=concurrency,
CELERYD_HIJACK_ROOT_LOGGER=False
)
答案 0 :(得分:6)
你应该能够以这种方式运行它。
worker = app.Worker(
hostname=hostname,
queues=[hostname],
optimization='fair'
)
worker.start()