我的芹菜配置如下
celery = Celery(__name__,
broker=os.environ.get('CELERY_BROKER_URL', 'redis://'),
backend=os.environ.get('CELERY_BROKER_URL', 'redis://'))
celery.config_from_object(APP_SETTINGS)
ssl = celery.conf.get('REDIS_SSL', True)
r = redis.StrictRedis(REDIS_BROKER, int(REDIS_BROKER_PORT), 0,
charset='utf-8', decode_responses=True, ssl=ssl)
db_uri = celery.conf.get('SQLALCHEMY_DATABASE_URI')
@celery.task
def process_task(data):
#some code here
我正在API端点内部调用流程任务,例如
process_task.delay(data)
有时它不处理任务。
有人可以帮助我解决此问题吗?
我正在像celery worker -A api.celery --loglevel=DEBUG --concurrency=10
答案 0 :(得分:0)
一旦所有工作进程都繁忙,新任务将坐在队列上,等待下一个空闲的工作进程启动任务。这很可能是您将其视为“每次都不处理任务”的原因。浏览Celery文档的monitoring and management部分,以查找如何监视Celery群集。对于初学者,请执行celery worker -A api.celery inspect active
检查当前正在运行的任务。