Почему моя задача Celery не запускается на Heroku?

В настоящее время у меня есть приложение, развернутое на Heroku. Недавно я добавил celery с redis. Приложение отлично работает на моем устройстве, но когда я пытаюсь развернуть его на Heroku, все работает нормально, вплоть до вызова задачи Celery. Однако ничего не происходит, и я не получаю никаких журналов ошибок от Heroku. Вот мой код:

settings.py:

CELERY_BROKER_URL = env('REDIS_URL', default=env('CELERY_BROKER_URL'))#REDIS_URL #redis://localhost:6379
CELERY_RESULT_BACKEND = env('REDIS_URL', default=env('CELERY_BROKER_URL')) #'redis://redis:6379'
CELERY_CACHE_BACKEND = "default"
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'UTC'

views.py: task = transcribe_file_task.delay(file_path, audio_language, output_file_type, 'ai_transcribe_output', session_id)

celery.py:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from django.conf import settings

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

app = Celery("mysite")

app.config_from_object("django.conf:settings", namespace="CELERY")

app.autodiscover_tasks()

docker-compose.yml:

services:
  web:
    environment:
      ...
       - CELERY_BROKER_URL=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0
      ...
services:
  celery:
    environment:
      ...
       - CELERY_BROKER_URL=redis://redis:6379/0
      - CELERY_RESULT_BACKEND=redis://redis:6379/0

heroku.yml:

setup:
  addons:
  - plan: heroku-postgresql
  - plan: heroku-redis
build:
  docker:
    web: Dockerfile
    celery: Dockerfile
release:
  image: web
  command:
    - python manage.py collectstatic --noinput
run:
  web: gunicorn mysite.wsgi
  celery: celery -A mysite worker --loglevel=info

requirements.txt: environs[django]==9.5.0

Я не использую Procfile.

Чтобы установить Redis на Heroku, я прочитал шаги в этом учебнике и просто перешел по url в строке 'Heroku Data for Redis' и установил его. Затем я зафиксировал установку на Github, запустил >heroku git:remote -a <app name> и вытолкнул на Heroku с помощью >git push heroku main.

Вернуться на верх