Code: Select all
from celery import Celery
from celery.utils.log import get_task_logger
app = Celery("src.my_module.tasks",
broker="amqp://guest:guest@localhost:5672/",
backend="redis://localhost:6379/0")
logger = get_task_logger(__name__)
@app.task
def add(x, y):
logger.info("Running add function with: %s, %s", x, y)
return x + y
< /code>
Ich starte Selleriearbeiter und Blumen -UI in PowerShell: < /p>
celery -A src.my_module.tasks worker --loglevel=info
Code: Select all
celery -A src.my_module.tasks flower --loglevel=info
und übrigens. Dies sind die Docker -Containerdefinitionen für den Brocker- und Ergebnis -Backend: < /p>
Code: Select all
rabbitmq:
image: rabbitmq:3-management
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
ports:
- "5672:5672"
- "15672:15672"
redis:
image: redis:alpine
restart: always
ports:
- "6379:6379"
Code: Select all
[2025-02-11 20:20:17,815: INFO/MainProcess] Task src.my_module.tasks.add[598610d9-3275-4996-bc81-065546677ae4] received
aaaaand ... das war's. Die Aufgabe endet nie, verlässt den empfangenen Zustand nie. Wenn ich es in Blume inspiziere, kann ich den Arg, diesen Status und die Ergebniseigenschaft, die keine ist. Broker -Backend spielt keine Rolle - sowohl Redis als auch Rabbitmq sagen, dass die Nachrichten nicht abgeschlossen sind.