Следующая функция должна отправлять запрос асинхронно:
Нет. строк в devices.csv = 1 миллион
Обязательно: отправка запроса POST для всех 1 миллиона строк в день в течение 3 дней
def check_in():
logging.info('Starting')
day = 0
while day < 3:
logging.info('Check-in Day = ' + str(day))
with open('devices.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
device_sn = row['serial_number']
payload = {
"product": "##",
"board": "###",
"hardware_id": "0000",
"usage_id": "000",
"mac_address": row['mac_address'],
"serial_number": row['serial_number']
}
logging.info(
'Check-in device: ' + device_sn)
checkin_post(payload, device_sn)
day += 1
def checkin_post(payload, device_sn):
payload = payload
serial_number = device_sn
print('\n' + 72 * '=' + '\nPOST /device/' +
serial_number + '/check-in')
resp = requests.post(base_url + '/device/' +
serial_number + '/check-in', auth=auth, json=payload)
print(resp.status_code)
Код может измениться на что-то вроде:
async def checkin_post(payload, device_sn):
payload = payload
serial_number = device_sn
print('\n' + 72 * '=' + '\nPOST /device/' +
serial_number + '/check-in')
resp = requests.post(base_url + '/device/' +
serial_number + '/check-in', auth=auth, json=payload)
return resp.status_code
async def main(payload, device_sn):
checkin_post(payload, device_sn)
Кроме того, поскольку await
нет, он не является действительно асинхронным.