Мой вопрос может не иметь четкого ответа, поэтому, пожалуйста, дайте мне знать, если то, что я пытаюсь сделать, нереально.
У меня есть сценарий Python, который выполняет несколько независимых операторов SQL. Из-за ограничений по времени ожидания, когда операторы заканчивают выполнение, не вариант. Заявления предназначены для технического обслуживания, и выход не ожидается. Есть ли способ их асинхронного запуска?
Например, используя psycopg2.cursor, я ожидаю сделать следующее:
cursor.execute(sql_statement)
# Run next code block
Рецепт threading
. Используйте это так:
from threading import Thread
Thread(target=cursor.execute, args=(sql_statement,)).start()
Стоит отметить, что ваша программа не может корректно завершить работу, пока эти потоки не будут завершены. Если это поведение неприемлемо для вас, вы можете обратить внимание на модуль subprocess
, который способен создавать независимо выполняемые задачи.