Дождитесь определенной метки времени в SSIS

У меня есть пакет MAIN SSIS, который внутри вызывает 2 дочерних пакета.

Этот MAIN pkg запускает 2 пакета вместе (используя задачи процесса выполнения «dtexec/DTS»), и существует бизнес-правило для просмотра столбца таблицы для определенной метки времени и ожидания, пока эта метка времени не станет сегодняшней датой (эта метка времени обновляется третьей стороной). ).

В настоящее время я использую цикл foreach для проверки этой метки времени, однако я использую оператор T-SQL для сна в течение 10 минут между каждой повторной попыткой, т.е.:

WAITFOR DELAY '00:10:00'

Мой вопрос в том, что это ожидание повесит весь ОСНОВНОЙ пакет SSIS или только этот дочерний пакет?

Кроме того, есть ли лучший способ добиться этой функциональности, чтобы оба дочерних пакета могли работать параллельно, не зависая друг от друга?


person Murtaza Mandvi    schedule 16.03.2013    source источник


Ответы (2)


Будет ли зависать весь основной пакет SSIS? Если у вашего основного пакета есть прецедент на этом шаге, то да, весь пакет будет ждать. Вы можете рассмотреть возможность вызова основного пакета из задания агента SQL с повторяющимся 10-минутным расписанием.

Но идея с триггером еще лучше.

person Nick.McDermaid    schedule 17.03.2013
comment
Чтобы лучше понять мою проблему, когда я говорю, что основной пакет будет ждать, я имел в виду, что если дочерний пакет 2 выполняет некоторую обработку параллельно с этим пакетом, который находится в состоянии ожидания, мой дочерний пакет 2 также будет зависать или он продолжит обработку? Между этими двумя дочерними пакетами нет никакой связи, единственная связь — это электронное письмо об успешном выполнении в конце после завершения обоих дочерних пакетов. - person Murtaza Mandvi; 18.03.2013
comment
Нет, ждать не будет, будет работать параллельно. Но почему бы вам не проверить это и не посмотреть? - person Nick.McDermaid; 19.03.2013

Некоторые мысли: Что касается дизайна пакета: поместите оба ваших дочерних пакета в контейнер последовательности на панели управления родительского пакета. Не «соединяйте» их вместе, чтобы они работали параллельно. Поместите задачу выполнения SQL за пределы контейнера последовательности. Эта задача проверит отметку времени, обновленную третьей стороной. Используйте условие, чтобы решить, следует ли выполнять контейнер последовательности.

Как вы планируете запланировать свой родительский пакет? Создайте задание sql для запуска пакета. Можем ли мы создать триггер на столе, который вызовет задание, если дата верна. Соответствующая ссылка: http://www.tek-tips.com/viewthread.cfm?qid=270744

Это интересная проблема. Пожалуйста, опубликуйте свои выводы и описание решения. Удачи!

person Anoop Verma    schedule 16.03.2013