feat: new stuff
This commit is contained in:
45
main.py
45
main.py
@@ -1,3 +1,4 @@
|
||||
from contextlib import asynccontextmanager
|
||||
from typing import Annotated
|
||||
|
||||
from celery.result import AsyncResult
|
||||
@@ -7,10 +8,9 @@ from starlette import status
|
||||
from starlette.responses import JSONResponse
|
||||
|
||||
import backend.config
|
||||
from background import taskiq_broker
|
||||
from schemas.general import *
|
||||
import background.tasks
|
||||
from background.tasks import *
|
||||
from schemas.general import UpdateRequest, UpdateResponse, UpdateMarketplaceRequest, UpdateMarketplacesRequest, \
|
||||
UpdateMarketplaceProductsRequest
|
||||
|
||||
auth_schema = HTTPBearer()
|
||||
|
||||
@@ -20,10 +20,32 @@ async def check_auth(token: Annotated[HTTPAuthorizationCredentials, Depends(auth
|
||||
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail='Invalid credentials')
|
||||
|
||||
|
||||
async def start_broker():
|
||||
if not taskiq_broker.is_worker_process:
|
||||
await taskiq_broker.startup()
|
||||
print('Broker started')
|
||||
return
|
||||
|
||||
|
||||
async def shutdown_broker():
|
||||
if not taskiq_broker.is_worker_process:
|
||||
await taskiq_broker.shutdown()
|
||||
print('Broker shutdown')
|
||||
return
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
await start_broker()
|
||||
yield
|
||||
await shutdown_broker()
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
dependencies=[
|
||||
Depends(check_auth)
|
||||
]
|
||||
],
|
||||
lifespan=lifespan
|
||||
)
|
||||
|
||||
|
||||
@@ -41,7 +63,7 @@ async def ping():
|
||||
async def update(
|
||||
request: UpdateRequest
|
||||
):
|
||||
task = background.tasks.process_update.delay(request.product_ids)
|
||||
task = background.tasks.process_update.kiq(request.product_ids)
|
||||
return UpdateResponse(task_id=task.id)
|
||||
|
||||
|
||||
@@ -49,25 +71,24 @@ async def update(
|
||||
async def update_marketplace(
|
||||
request: UpdateMarketplaceRequest
|
||||
):
|
||||
task = background.tasks.update_marketplace.delay(request.marketplace_id)
|
||||
return UpdateResponse(task_id=task.id)
|
||||
task = await background.tasks.update_marketplace.kiq(request.marketplace_id)
|
||||
return UpdateResponse(task_id=task.task_id)
|
||||
|
||||
|
||||
@app.post('/update/marketplace/products')
|
||||
async def update_marketplace_products(
|
||||
request: UpdateMarketplaceProductsRequest
|
||||
):
|
||||
task = background.tasks.update_marketplace_products.delay(request.marketplace_id, request.product_ids)
|
||||
return UpdateResponse(task_id=task.id)
|
||||
task = await background.tasks.update_marketplace_products.kiq(request.marketplace_id, request.product_ids)
|
||||
return UpdateResponse(task_id=task.task_id)
|
||||
|
||||
|
||||
@app.post('/update/marketplaces')
|
||||
async def update_marketplace(
|
||||
request: UpdateMarketplacesRequest
|
||||
):
|
||||
task = background.tasks.update_marketplaces.delay(request.marketplace_ids)
|
||||
return UpdateResponse(task_id=task.id)
|
||||
|
||||
task =await background.tasks.update_marketplaces.kiq(request.marketplace_ids)
|
||||
return UpdateResponse(task_id=task.task_id)
|
||||
|
||||
@app.get("/tasks/{task_id}")
|
||||
def get_status(task_id):
|
||||
|
||||
Reference in New Issue
Block a user