997842115 пре 3 недеља
комит
8ed49520e5
3 измењених фајлова са 48 додато и 0 уклоњено
  1. 9 0
      celery_app.py
  2. 33 0
      main.py
  3. 6 0
      tasks.py

+ 9 - 0
celery_app.py

@@ -0,0 +1,9 @@
+from celery import Celery
+celery_app = Celery(
+"tasks",
+broker="redis://:Pheecian1@47.101.198.30:6379/0",
+backend="redis://:Pheecian1@47.101.198.30:6379/1",
+)
+celery_app.conf.update(redis_socket_timeout=30)
+celery_app.conf.update(redis_retry_on_timeout=True)
+celery_app.conf.update(task_track_started=True)

+ 33 - 0
main.py

@@ -0,0 +1,33 @@
+from fastapi import FastAPI
+from pydantic import BaseModel
+from celery.result import AsyncResult
+app = FastAPI()
+
+from tasks import process_data
+
+class Task(BaseModel):
+    bianma: str
+    mc: str
+    tz: str
+    dw: str
+    sl: str
+    n: int
+    label: str
+    name: str
+    bh: str
+    city: str
+
+
+@app.post("/submit/")
+async def submit(r: Task):
+    task = process_data.apply_async(kwargs={"data": { "city" : r.city, "bianma": r.bianma, "mc": r.mc, "tz": r.tz, "dw": r.dw, "sl": r.sl, "n": r.n, "label": r.label, 'name': r.name, 'bh': r.bh}})
+    return {"id": task.id}
+
+
+@app.get("/check/{id}")
+async def check(id):
+    result = AsyncResult(id)
+    return {
+      'status': result.status,
+      'result': result.result if result.ready() else None
+            }

+ 6 - 0
tasks.py

@@ -0,0 +1,6 @@
+import time
+from bson.objectid import ObjectId
+from celery_app import celery_app
+@celery_app.task
+def process_data(data:dict)-> dict:
+    return {"result": []}