Python Requests - Пакетные вызовы API - PullRequest
1 голос
/ 10 июля 2019

Я работаю над API для передачи записей из базы данных в конечную точку.

Мне удалось написать фрагмент кода, который захватывает записи, анализирует их и, наконец, передает в API и работает нормально..

Ему удается выдавать около 400 запросов в минуту, и мне было интересно, смогу ли я пакетировать эти запросы, чтобы сделать его немного более производительным, но я не могу понять, как этого можно достичь.

URL-адрес вызова API:

http://call -url.com / service / {id}

Рассмотрим полезную нагрузку для идентификатора:

id = 101

{
"stars":3
"position":5
"date":"2002-04-30T10:00:00+00:00"
}
url = http://call-url.com/service/101

Я использую Python и модуль запросов для отправки записей.

Пока мы говорим, я собираю записи и анализирую загрузку для каждого отдельного идентификатора и отправляю их.

IДо сих пор сталкивался с асинхронностью и многопоточностью, но мне нужно убедиться, что я не нажимаю один и тот же запрос дважды.

Можно ли нажать более 1 записи одновременно?

Спасибо,

1 Ответ

1 голос
/ 10 июля 2019

Вы можете использовать любой брокер сообщений AMQP. RabbitMQ например. Концепция проста, просто посмотрите учебник . Разделите ваш сценарий на main.py (чтение БД, подготовка полезных нагрузок и отправка их в очередь) и worker.py (получение полезной нагрузки из очереди и отправка в API), а затем просто создайте столько процессов worker.py, сколько вам нужно. ..

...