У меня есть довольно простой скрипт, который просто извлекает записи из базы данных, выполняет цикл for для результатов и использует результаты для обращения к API.
Это, очевидно, занимает некоторое время, так как приходится ждатьрезультат запроса API на возврат и анализ перед переходом к следующей записи в базе данных.
Я ищу примеры того, как я мог бы выполнить 5-10 запросов API параллельно, вместо того чтобы ждать ихпроцесс 1 за один раз.
Пример кода:
import pypyodbc as p
import json
cnxn = p.connect('Driver=/usr/local/lib/libmsodbcsql.13.dylib;SERVER=127.0.0.1;UID=user;PWD=1234;DATABASE=test_DB;')
cursor = cnxn.cursor()
rows = cursor.execute("SELECT number from xyz")
for row in rows:
try:
print('row = %r' % (row,))
number = row[0]
# Some API Request will occur here that will utilize 'number'
# I would like to do 5-10 API requests in parallel instead of waiting for the result before moving to the next DB record
result = The JSON response of some API request
print(result)
parsed_json = json.loads(result)
Value1 = parsed_json['Test']['Data']['Value1']
Value2 = parsed_json['Test']['Data']['Value2']
cnxnupdate = p.connect('Driver=/usr/local/lib/libmsodbcsql.13.dylib;SERVER=127.0.0.1;UID=user;PWD=1234;DATABASE=test_DB;')
cursorupdate = cnxnupdate.cursor()
row_count = cursorupdate.execute("UPDATE xyz SET Value1=?, Value2=? WHERE number=?",
(Value1, Value2, number))
cnxnupdate.commit()
if row_count == 0:
print("Warning: no row updated")
except Exception as e:
print("Error, moving on...")
print(e)