Skip to content
Snippets Groups Projects
Commit 9351a69e authored by nimrod's avatar nimrod
Browse files

Add worker, simplify structrue.

parent 5163f14a
No related branches found
No related tags found
No related merge requests found
...@@ -2,5 +2,5 @@ FROM python:3.8 ...@@ -2,5 +2,5 @@ FROM python:3.8
WORKDIR /opt/waldorf WORKDIR /opt/waldorf
COPY requirements.txt ./ COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt
COPY waldorf ./waldorf COPY *.py ./
USER nobody USER nobody
...@@ -18,9 +18,21 @@ services: ...@@ -18,9 +18,21 @@ services:
build: build:
context: ./ context: ./
command: ["flask", "run", "--port", "8080", "--host", "0.0.0.0"] command: ["flask", "run", "--port", "8080", "--host", "0.0.0.0"]
depends_on:
- rabbitmq
environment: environment:
FLASK_APP: waldorf/server FLASK_APP: server
healthcheck: healthcheck:
test: ["CMD-SHELL", "wget http://localhost:8080/ping || exit 1"] test: ["CMD-SHELL", "wget http://localhost:8080/ping || exit 1"]
ports: ports:
- 8080:8080 - 8080:8080
worker:
build:
context: ./
command: ["celery", "worker", "--app", "tasks", "--loglevel", "info"]
depends_on:
- rabbitmq
environment:
BROKER_URL: amqp://waldorf:pass@rabbitmq/waldorf
healthcheck:
test: ["CMD-SHELL", "pgrep python || exit 1"]
"""Dummy web server using Flask.""" """Dummy web server using Flask."""
from flask import Flask from flask import Flask, request, jsonify
import tasks
app = Flask(__name__) # pylint: disable=invalid-name app = Flask(__name__) # pylint: disable=invalid-name
...@@ -8,3 +9,11 @@ app = Flask(__name__) # pylint: disable=invalid-name ...@@ -8,3 +9,11 @@ app = Flask(__name__) # pylint: disable=invalid-name
def ping(): def ping():
"""Healthcheck.""" """Healthcheck."""
return "pong" return "pong"
@app.route("/log", methods=["POST"])
def log():
"""Async log."""
data = request.get_json()
tasks.log.apply_async(args=(data,))
return jsonify(data)
tasks.py 0 → 100644
"""Celery worker."""
import logging
import os
from celery import Celery
BROKER_URL = os.getenv("BROKER_URL")
app = Celery("tasks", broker=BROKER_URL) # pylint: disable=invalid-name
@app.task
def log(message):
"""Log message."""
logging.info(f"Message: %s", message)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment