v1.0
This commit is contained in:
@@ -45,11 +45,11 @@ class WildberriesMarketplaceApi(BaseMarketplaceApi):
|
||||
return
|
||||
max_stocks = 1000
|
||||
chunks = utils.chunk_list(data, max_stocks)
|
||||
if not chunks:
|
||||
return
|
||||
limiter = BatchLimiter()
|
||||
|
||||
async def send_stock_chunk(chunk):
|
||||
if not self.is_valid:
|
||||
return
|
||||
try:
|
||||
await limiter.acquire_wildberries(self.limiter_key)
|
||||
request_data = {'stocks': chunk}
|
||||
@@ -61,11 +61,17 @@ class WildberriesMarketplaceApi(BaseMarketplaceApi):
|
||||
error_code = response.get('code')
|
||||
logging.warning(
|
||||
f'Error occurred when sending stocks to [{self.marketplace.id}]: {error_message} ({error_code})')
|
||||
self.is_valid = False
|
||||
return False
|
||||
return True
|
||||
except Exception as e:
|
||||
logging.error(
|
||||
f'Exception occurred while sending stocks to marketplace ID [{self.marketplace.id}]: {str(e)}')
|
||||
self.is_valid = False
|
||||
|
||||
return False
|
||||
tasks = [send_stock_chunk(chunk) for chunk in chunks]
|
||||
await asyncio.gather(*tasks)
|
||||
first_request = tasks[0]
|
||||
first_response = await first_request
|
||||
if not first_response:
|
||||
logging.error(f'Skipping marketplace [{self.marketplace.id}] because first request was unsuccessful')
|
||||
return
|
||||
|
||||
await asyncio.gather(*tasks[1:])
|
||||
|
||||
Reference in New Issue
Block a user