Die zweite Sellerie-Warteschlange kann nicht erstellt werdenPython

Python-Programme
Guest
 Die zweite Sellerie-Warteschlange kann nicht erstellt werden

Post by Guest »

Ich möchte zwei Sellerie-Warteschlangen erstellen (für verschiedene Arten von Aufgaben)
Meine Sellerie-Konfiguration. Ich erwarte, dass diese Konfiguration zwei Warteschlangen „celery“ und „celery:1“
erstellt

Code: Select all

# celery.py

import os
from celery import Celery

from core_app.settings import INSTALLED_APPS

# this code copied from manage.py
# set the default Django settings module for the 'celery' app.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core_app.settings')

app = Celery("my_app")

# To start scheduling tasks based on priorities
# you need to configure queue_order_strategy transport option.
# ['celery', 'celery:1',] - two queues, the highest priority queue will be named celery
app.conf.broker_transport_options = {
'priority_steps': list(range(2)),
'sep': ':',
'queue_order_strategy': 'priority',
}

# read config from Django settings, the CELERY namespace would make celery
# config keys has `CELERY` prefix
app.config_from_object('django.conf:settings', namespace='CELERY')

# load tasks.py in django apps
app.autodiscover_tasks(lambda: INSTALLED_APPS)
Ich definiere und führe eine Sellerie-Aufgabe wie folgt aus:

Code: Select all

@shared_task(queue="celery", soft_time_limit=600, time_limit=650)
def check_priority_urls(parsing_result_ids: List[int]):
check_urls(parsing_result_ids)

@shared_task(queue="celery:1", soft_time_limit=600, time_limit=650)
def check_common_urls(parsing_result_ids: List[int]):
check_urls(parsing_result_ids)

# running task
check_priority_urls.delay(parsing_results_ids)
Aber ich sehe nur eine Warteschlange

Code: Select all

celery -A core_app inspect active_queues
->  celery@d1a287d1d3b1: OK
* {'name': 'celery', 'exchange': {'name': 'celery', 'type': 'direct', 'arguments': None, 'durable': True, 'passive': False, 'auto_delete': False, 'delivery_mode': None, 'no_declare': False}, 'routing_key': 'celery', 'queue_arguments': None, 'binding_arguments': None, 'consumer_arguments': None, 'durable': True, 'exclusive': False, 'auto_delete': False, 'no_ack': False, 'alias': None, 'bindings': [], 'no_declare': None, 'expires': None, 'message_ttl': None, 'max_length': None, 'max_length_bytes': None, 'max_priority': None}

1 node online.
Und Sellerieblüten sehen nur eine Warteschlange
Image

Mein Sellerie in Docker-Compose

Code: Select all

celery:
build: ./project
command: celery -A core_app worker  --loglevel=info --concurrency=15 --max-memory-per-child=1000000
volumes:
- ./project:/usr/src/app
- ./project/media:/project/media
- ./project/logs:/project/logs
env_file:
- .env
environment:
# environment variables declared in the environment section override env_file
- DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
- CELERY_BROKER=redis://redis:6379/0
- CELERY_BACKEND=redis://redis:6379/0
depends_on:
- django
- redis

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post