feat: ability to reset marketplace
This commit is contained in:
@@ -57,3 +57,16 @@ class BaseMarketplaceUpdater(ABC):
|
||||
marketplace_update = self.get_update_for_marketplace(stock_data)
|
||||
marketplace_updates.append(marketplace_update)
|
||||
await self.marketplace_api.update_stocks(marketplace_updates)
|
||||
|
||||
async def reset(self):
|
||||
if not self.marketplace_api:
|
||||
return
|
||||
stock_data_list = await queries.general.get_stocks_data(
|
||||
session=self.session,
|
||||
marketplace=self.marketplace
|
||||
)
|
||||
marketplace_updates = []
|
||||
for stock_data in stock_data_list:
|
||||
marketplace_update = self.get_update_for_marketplace(stock_data)
|
||||
marketplace_updates.append(marketplace_update)
|
||||
await self.marketplace_api.update_stocks(marketplace_updates)
|
||||
|
||||
@@ -132,3 +132,11 @@ class StocksUpdater:
|
||||
for marketplace_id, marketplace_updates in updates_list:
|
||||
tasks.append(self.update_marketplace(marketplace_id, marketplace_updates))
|
||||
await asyncio.gather(*tasks)
|
||||
|
||||
async def reset_marketplace(self, marketplace_id:int):
|
||||
marketplace = await self.get_marketplace(marketplace_id)
|
||||
start = time.time()
|
||||
updater = UpdaterFactory.get_updater(self.session,marketplace)
|
||||
await updater.reset()
|
||||
logging.info(
|
||||
f"{marketplace.name} successfully updated in {round(time.time() - start, 2)} seconds.")
|
||||
|
||||
Reference in New Issue
Block a user