Скрипты PowerShell, использующие класс .NET SQLConnection, мешают друг другу - PullRequest
0 голосов
/ 14 декабря 2018

Я запускаю несколько экземпляров одного скрипта PowerShell, который отслеживает общую папку для новых файлов JSON, а затем загружает эти файлы JSON в базу данных SQL Azure для преобразования в табличные данные.Я запускаю несколько экземпляров сценария, чтобы у меня была избыточность и большая пропускная способность для загрузки файлов, поскольку в общей папке часто находятся десятки файлов JSON, которые необходимо загрузить.

Моя проблема в том, что иногда один экземпляр скрипта запускает метод ExecuteNonQuery() из класса System.Data.SqlClient.SqlCommand и просто зависает.Обычно это просто приводит к зависанию одного экземпляра скрипта, но иногда он останавливает один или несколько других запущенных экземпляров скрипта.Как только я закрываю инстанс-нарушитель, все остальное снова начинает работать нормально.

Вчера я также заметил, что совершенно не связанный скрипт PowerShell, который также использует класс System.Data.SqlClient.SqlCommand, стартовал, когда другой скрипт висел, и он тоже завис, пока не закрылось первое окно скрипта.

Мой вопрос: как мне исследовать и решить эту проблему?Я предполагаю, что PowerShell каким-то образом разделяет ресурсы между сценариями, и если один сценарий блокирует эти ресурсы, то всем остальным сценариям не повезло.Есть ли какой-нибудь способ обойти это, или лучший метод программирования, чтобы использовать, когда это происходит?

...