Files
Sipro-Stocks/background/tasks.py
2024-10-22 10:02:26 +03:00

40 lines
1.2 KiB
Python

import asyncio
from typing import List, Union
from celery.signals import worker_ready
import background.update
from background import celery
from limiter import BatchLimiter
@celery.task(name='process_update')
def process_update(product_ids: list[int]):
loop = asyncio.get_event_loop()
return loop.run_until_complete(background.update.process_update(product_ids))
@celery.task(name='update_marketplace')
def update_marketplace(marketplace_id: int):
loop = asyncio.get_event_loop()
return loop.run_until_complete(background.update.update_marketplace(marketplace_id))
@celery.task(name='update_marketplace_products')
def update_marketplace_products(marketplace_id: int, product_ids: list[int]):
loop = asyncio.get_event_loop()
return loop.run_until_complete(background.update.update_marketplace_products(marketplace_id, product_ids))
@celery.task(name='update_marketplaces')
def update_marketplaces(marketplace_ids: Union[List[int], None]):
loop = asyncio.get_event_loop()
return loop.run_until_complete(background.update.update_marketplaces(marketplace_ids))
@worker_ready.connect
def worker_is_ready(sender, **kwargs):
loop = asyncio.get_event_loop()
limiter = BatchLimiter()
loop.run_until_complete(limiter.clear_locks())