Chyba aplikace kontext v baňce aplikaci s celerem v Docker

hlasů
0

Já jsem se snaží používat baňky a celer v Docker a mám problémy s aplikačním kontextu Flask.

Baňka == 1.0.2 == celer 4.2.0 Baňka-CeleryExt == 0.3.1

Zde jsou některé relevantní kód.

přístavní dělník-compose.yaml

version: '3'

services:
  myapp:
    build:
      context: .
      dockerfile: compose/dev/myapp/Dockerfile
    ports:
      - '5000:5000'
      - '8888:8888'
    env_file: .env
    environment:
      - FLASK_ENV=development
    volumes:
      - .:/myapp
    entrypoint: /wait-for-postgres.sh
    command: flask run --host=0.0.0.0
    depends_on:
      - postgres
      - redis
    networks:
      - flask-redis-celery

  celery:
    build:
      context: .
      dockerfile: compose/dev/celery/Dockerfile
    command: 'celery -A myapp.tasks worker -Q default --loglevel=info'
    env_file: .env
    volumes:
      - .:/myapp
    depends_on:
      - redis
      - myapp
    networks:
      - flask-redis-celery

extensions.py

from flask_celeryext import FlaskCeleryExt
ext = FlaskCeleryExt()

app.py ve register_extensionsfunkci. Jsem pomocí aplikačního tovární vzor v mé aplikaci.

ext.init_app(app)

Uvnitř myappkontejneru, mohu dostat ext.celerydle dokumentace a uvidíte, že mám instanci celer a správně odeslat úkol

<Celery default at 0x7f600d0e7f98>

Nicméně se snaží udělat to samé v kontejneru celer v mých tasksvýsledcích souborů v ext.celerybytí Žádný.

tasks.py

from coupon.extensions import ext
celery = ext.celery # This is None

@celery.task(name='tasks.my_task', max_retries=2, default_retry_delay=60)
def my_task(some_args):
    # etc.

Chyba

AttributeError: 'NoneType' object has no attribute 'task'

Já jsem se pokusil celou řadu dalších možností, stejně, včetně make_celery, jak je uvedeno v docs baňce , ale nemůže dostat do baňky a mých modelů v kontejneru celer, takže nevěřím, že je to velmi specifické baňky-CeleryExt.

Dokážu Celer úkoly funguje dobře, pokud nemají přístup k baňce objekty, ale musím přistupovat SQLAlchemy modely a vlastní třídy z mých Celer úkolů.

Jak mohu celer pracovat správně v mém celer kontejneru a mít přístup k baňky objekty?

Položena 27/11/2018 v 17:58
zdroj uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more