【问题标题】:Unable to inspect Celery Queue无法检查芹菜队列
【发布时间】:2019-12-29 22:37:44
【问题描述】:

我无法使用 Celery 中的 inspect() 函数来查看队列中的活动项和保留项。它不会返回{u'celery@mymachine': []} 之类的东西,而是总是返回None

这是在我将 Docker 从使用 python:3.6-alpine 更改为 python:3.6 之后开始的,但现在,即使在我恢复到 alpine 之后,我仍然会收到这种行为。我已经尝试了这里建议的所有内容:Celery scheduled list returns None,但似乎也没有任何效果。

我在下面包含了一个显示我的问题的最小示例

如果有人对可能导致此问题的原因有任何想法,我将非常感激

Docker 文件:

FROM python:3.6-alpine
ENV CELERY_BROKER_URL redis://redis:6379/0
ENV CELERY_RESULT_BACKEND redis://redis:6379/0
ENV C_FORCE_ROOT true
WORKDIR /usr/src/app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD celery -A celeryExample worker --concurrency=1 --loglevel=info 

Docker 撰写:

version: '3'

services:
  redis:
    image: redis
    ports:
      - 6379:6379
  celery: 
    build: 
        context: .
        dockerfile: Dockerfile.celery
    depends_on:
      - redis
    volumes: 
        - .:/usr/src/app    

requirements.txt

celery

celeryExample.py

from celery import Celery
import celeryconfig

broker_url = os.environ.get('broker_url', 'redis://localhost:6379/0'),
result_backend = os.environ.get('result_backend', 'redis://localhost:6379/0')

app = Celery('server', broker = broker_url,
                       backend = result_backend)
app.config_from_object(celeryconfig)

@app.task
def add(x, y):
    return x + y

芹菜配置:

worker_prefetch_multiplier = 1
worker_concurrency  = 1

active.py:

from celery import Celery
import celeryconfig
from celery.task.control import inspect
import os

broker_url = os.environ.get('broker_url', 'redis://localhost:6379/0'),
result_backend = os.environ.get('result_backend', 'redis://localhost:6379/0')

app = Celery('server', broker = broker_url,
                       backend = result_backend)
app.config_from_object(celeryconfig)

i = inspect()
q = i.active()
print(q)

【问题讨论】:

    标签: python redis docker-compose celery


    【解决方案1】:

    今天发生在我身上,罪魁祸首是最近发布的kombu版本==4.6.4

    https://github.com/celery/kombu/issues/1081

    我将 kombu==4.6.3 添加到我的需求文件中,因此它会覆盖一个 celery 安装并且它再次开始为我工作,希望它有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      相关资源
      最近更新 更多