Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Привет, закинул все в контейнеры.
- Celery, Redis, Django, Pstgr
- Пытаюсь юзать celery-beat.
- Таска задекларирована в settings.py и сервис celery в контейнере ее видит, но через определенное время она не вызывается.
- docker-compose.yml
- version: '3'
- services:
- db:
- image: postgres
- volumes:
- - postgres_data:/var/lib/postgresql/data/
- redis:
- image: "redis:alpine"
- web:
- build: .
- volumes:
- - .:/code
- ports:
- - "8000:8000"
- depends_on:
- - db
- - redis
- celery:
- build: .
- command: celery -A test_dir worker -l info
- volumes:
- - .:/code
- depends_on:
- - db
- - redis
- celery-beat:
- build: .
- command: celery -A test_dir beat -l info
- volumes:
- - .:/code
- depends_on:
- - db
- - redis
- volumes:
- postgres_data:
- settings.py
- CELERY_BROKER_URL = 'redis://redis:6379'
- CELERY_RESULT_BACKEND = 'redis://redis:6379'
- CELERY_ACCEPT_CONTENT = ['application/json']
- CELERY_TASK_SERIALIZER = 'json'
- CELERY_RESULT_SERIALIZER = 'json'
- CELERY_BEAT_SCHEDULE = {
- 'hello': {
- 'task': 'API.tasks.hello',
- 'schedule': crontab()
- }
- }
- __init__.py
- from .celery import app as celery_app
- __all__ = ['celery_app']
- celery.py рядом c settings.py
- import os
- from celery import Celery
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test_dir.settings')
- app = Celery('test_dir')
- app.config_from_object('django.conf:settings', namespace='CELERY')
- app.autodiscover_tasks()
- @app.task(bind=True)
- def debug_task(self):
- print('Request: {0!r}'.format(self.request))
- tasks.py в приложении API
- from celery import shared_task
- @shared_task
- def hello():
- print('Hello there!')
Advertisement
Add Comment
Please, Sign In to add comment