Почему приложение Azure Logi c запускается дважды без причины - PullRequest
0 голосов
/ 27 мая 2020

У меня есть конвейер фабрики данных, который выполняет несколько довольно простых задач. По какой-то причине часть конвейера Logi c App «запускается» несколько раз, даже если я вызываю его только один раз.

Итак, конвейер запускает три хранимые процедуры. Затем он экспортирует результаты в контейнер Data Lake. Затем, наконец, он отправляет электронное письмо с тремя отчетами в виде вложений к электронному письму.

У меня все работает нормально, но есть одна странная деталь, которую я наблюдаю. Приложение logi c по существу запускается три раза при вызове, так что я получаю три письма. Похоже, я все делаю правильно.

Logi c App Designer

Logi c App

Мне кажется, что это запуск для каждого действия с вложением / содержимым большого двоичного объекта. У меня sh идей нет. Если у кого-то есть мысли, было бы здорово.

Спасибо!

1 Ответ

0 голосов
/ 27 мая 2020

Триггер будет срабатывать, если вы добавляете / изменяете файлы в указанной вами папке каждые x минут (вы устанавливаете это 3 минуты). А если вы добавили / изменили три файла, триггер сработает три раза, так что вы получили три письма. Вы можете посмотреть историю запусков вашего приложения logi c, каждый раз при запуске триггера « Body » будет возвращаться содержимое одного файла из трех файлов.

Если вы не хотите, чтобы поток запускался трижды три раза, вы можете установить триггер, выполнив следующие действия:

  1. Измените « Количество BLOB-объектов, возвращаемых из триггера"до 10 (или любого другого числа, которое вы хотите, но должно быть больше 3, поскольку у вас есть три файла). enter image description here

  2. Нажмите кнопку ... в верхнем правом углу триггера и нажмите « Настройки », отключите "Разделить на". enter image description here

После завершения двух шагов настройки «Тело» триггера вернет все три файла за один раз, вы получите только одно электронное письмо.

Обновление:

Извините за пропущенный один шаг, помимо шагов выше, нам также необходимо добавить условие «Если» в лог c app.

Создайте условие «Если» после триггера «При добавлении или изменении большого двоичного объекта (только свойства)», подробности условия показаны ниже: enter image description here

Если true, выполните необходимые действия (например, получите содержимое большого двоичного объекта и отправьте электронные письма). Если false, ничего не делать. Тогда вы получите всего одно электронное письмо.

Кстати, если вы заметили историю запусков, вы можете увидеть, что приложение logi c запускалось два раза. В первый раз триггер отвечает «телу» массивом [], а во второй раз триггер отвечает «телом» с тремя массивами blob. Вот почему нам нужно добавить условие «Если».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...