38 lines
939 B
Python
38 lines
939 B
Python
from celery.result import AsyncResult
|
|
from fastapi import APIRouter
|
|
|
|
import background.tasks.marketplace
|
|
from background.celery_app import celery
|
|
from schemas.task import *
|
|
|
|
task_router = APIRouter(
|
|
prefix='/task',
|
|
tags=["task"],
|
|
)
|
|
|
|
|
|
@task_router.post(
|
|
'/synchronize-marketplace',
|
|
operation_id='create_synchronize_marketplace_task',
|
|
response_model=CreateTaskResponse
|
|
)
|
|
async def synchronize_marketplace(
|
|
request: SynchronizeMarketplaceRequest
|
|
):
|
|
marketplace_id = request.marketplace_id
|
|
task: AsyncResult = background.tasks.marketplace.synchronize_marketplace.delay(marketplace_id)
|
|
return CreateTaskResponse(task_id=task.id)
|
|
|
|
|
|
@task_router.get(
|
|
'/info/{task_id}',
|
|
operation_id='get_task_info',
|
|
response_model=TaskInfoResponse
|
|
)
|
|
def task_info(task_id: str):
|
|
task = AsyncResult(task_id, app=celery)
|
|
return TaskInfoResponse(
|
|
task_id=task_id,
|
|
status=task.status
|
|
)
|