Я использую устаревший сценарий, который изначально использовался и, судя по всему, некоторое время назад.
Я хотел очистить свою версию, чтобы следовать лучшим практикам и быть более эффективен, как я думаю, и вам следует, когда вы очищаете сорняки и т. д., однако я новичок в пакетах SSIS, так что простите меня.
Базовый обзор сценария:
По сути, это извлекает большой набор данных строковых HTTP запросов из БД, которые используются для запроса внешнего API и обрабатывать каждую запись в цикле индивидуально. Добавьте запрос к модели, затем выполните запрос с помощью HttpWebRequest, сохраните ответ сервера для этой модели, запишите ответ для этой записи и т. д.
Проблема< /h2>
Проблема в том, что для HTTP-запросов используется HttpWebRequest, поэтому я обновил использование HttpClient и внедрил его в свой помощник методы через метод Main, а затем использовать их на протяжении всего срока службы моих сценариев.
Поскольку HttpClient имеет только методы Async, я использовал их и ждал > ответ. Я вызываю нечто похожее на метод ниже в цикле ForEach, чтобы выполнить запрос для каждой записи в наборе данных.
Код: Выделить всё
public async System.Threading.Tasks.Task ReqHelper()
{
res = await client.GetAsync(url);
}
Я добавил это (я знаю, что это плохая практика и ее не следует использовать), но я хотел посмотреть, есть ли другой способ гарантировать, что мы не перейдем к следующей задаче в поток управления:
Код: Выделить всё
MyParentAsyncMethod(InputData).GetAwaiter().GetResult();
Простите меня, если можно, если я могу быть наивным в некоторых аспектах этого, я впервые работаю с пакетами SSIS.
Я с радостью приветствуем любые советы или помощь сообщества по этому вопросу
Подробнее здесь: https://stackoverflow.com/questions/789 ... e-task-scr