когда держать объект курсора открытым mysql python - PullRequest
0 голосов
/ 09 марта 2020

К сведению: у меня есть служба API, которая всегда работает в Python Flask с использованием одной и той же базы данных MySQL.

У меня есть отдельный скрипт, который будет запускаться каждые 10 минут для выполнения некоторых функции, основанные на новых данных в базе. соединение открывать или закрывать, поэтому, если запущена внутренняя служба, мы не будем откладывать, если кому-то понадобится обновить интерфейс. Другими словами, когда внутренний компонент запускается, чтобы извлечь некоторые данные и сохранить их в памяти для обработки, это никогда не должно задерживать кого-либо на внешнем интерфейсе. Я просто очень запутался в том, когда открывать новый курсор или держать его открытым, и тому подобное.

Вот мой пример кода. Когда запускается внутренний скрипт, он всегда сначала устанавливает объект соединения. Я не закрываю его до конца сценария.

# Database
database = mysql.connector.connect(user='', password='', database=''', host='127.0.0.1')

# Select existing order numbers
database_cursor = database.cursor()
database_cursor.execute("SELECT o FROM orders")
order_numbers_list = list(chain.from_iterable(database_cursor.fetchall()))
database.commit()
database_cursor.close()

# Select search pattern criteria
database_cursor = database.cursor()
database_cursor.execute("SELECT IFNULL(sp_from, 'staging'), sp_subject, sp_body FROM search_patterns")
search_patterns = database_cursor.fetchall()
database.commit()
database_cursor.close()
search_criteria = {}

Спасибо за ваши предложения.

...